액티비티가 아닌 곳에서 전화 걸기 화면으로 넘기기 위한 방법
////////////////////////////////
Context를 선언하여 생성자에서 context를 미리 받아놓자
(객체생성할때 this를 넘기자)
private Context mContext;
public 생성자(Context context){
mContext = context;
}
private void startCall(String num) {
Intent it = new Intent(Intent.ACTION_CALL, Uri.parse("tel:" + num));
it.addFlags(Intent.FLAG_ACTIVITY_NEW_TASK);
mContext.startActivity(it);
}
//////////////////////////////////
근데 저렇게 써왔던것 같은데 startActivity에서 에러가 났다 ㅡㅡ
에러 알림에서 해결방법을 클릭했더니
private void startCall(String num) {
Intent it = new Intent(Intent.ACTION_CALL, Uri.parse("tel:" + num));
it.addFlags(Intent.FLAG_ACTIVITY_NEW_TASK);
if (ActivityCompat.checkSelfPermission(mContext, Manifest.permission.CALL_PHONE) != PackageManager.PERMISSION_GRANTED) {
// TODO: Consider calling
// ActivityCompat#requestPermissions
// here to request the missing permissions, and then overriding
// public void onRequestPermissionsResult(int requestCode, String[] permissions,
// int[] grantResults)
// to handle the case where the user grants the permission. See the documentation
// for ActivityCompat#requestPermissions for more details.
return;
}
mContext.startActivity(it);
}
이런식으로 권한체크 if문이 추가되었다!!!
마시멜로우 부터 권한 부분이 달라졌다고 들었는데 그 때문인것 같다.
(마시멜로우 전에는 앱 설치시 모든 권한을 다 허가받고 설치를 했는데
후 부터는 각 기능을 실행하기전에 권한을 확인한다고 한다??)
아무튼 권한여부를 이제 각각 체크해줘야 하는것 같은데 좀 더 알아보고 해야겠다.
참고할만한 사이트는 찾았다.
'공부 > Android' 카테고리의 다른 글
(android) 마쉬멜로우 권한(Marshmallow permission) (0) | 2016.07.26 |
---|---|
(android) adapter getview 중복 error (0) | 2016.07.15 |
(android) 문자열의 첫번째 글자 자음 가져오기 (0) | 2016.07.13 |
(android) EditText focus 키보드 자동 실행 (0) | 2016.07.13 |
(android) NetworkImageView default image (0) | 2016.07.07 |