런타임 권한을 구현하는 데 문제가 있습니다. 나는 실행 권한을 구현하기위한 아래 링크를 통해 갔다 :.API 23의 Manifest.permission.MODIFY_PHONE_STATE에 대한 requestPermissions()가 작동하지 않습니다.
https://developer.android.com/training/permissions/requesting.html
내가 android.permission.MODIFY_PHONE_STATE에 대한 문제에 직면 "단지 내가 카메라 권한을 제대로 작동 카메라 권한과 코드를 아래의 코드를 테스트 한
. 내가 직면하고문제 :
- shouldShowRequestPermissionRationale()는 체육을 부여하지 않음) (거짓
- requestPermissions을 반환 rmision.
학년 세부 : compileSdkVersion 23 buildToolsVersion "23.0.3", targetSdkVersion을 23
매니페스트 상세 사항 : 이름 = "android.permission : 나는
안드로이드-권한 사용하여 다음과 같은 권한을 추가했습니다. 액세스하거나 앱에서이 권한을 사용할 수 있도록 MODIFY_PHONE_STATE "
private static final int PERMISSIONS_REQUEST_CODE = 123;
@Override
protected void onCreate(Bundle savedInstanceState) {
super.onCreate(savedInstanceState);
setContentView(R.layout.activity_main);
int granted = PackageManager.PERMISSION_GRANTED;
int result = ContextCompat.checkSelfPermission(ActivityMain.this,Manifest.permission.MODIFY_PHONE_STATE);
if (result == granted) {
Toast.makeText(ActivityMain.this,"permissions granted",Toast.LENGTH_LONG).show();
}
if (result != PackageManager.PERMISSION_GRANTED) {
Toast.makeText(ActivityMain.this, "permissions denied", Toast.LENGTH_LONG).show();
boolean res = ActivityCompat.shouldShowRequestPermissionRationale(ActivityMain.this,Manifest.permission.MODIFY_PHONE_STATE);
// returning false
if (res) {
new AlertDialog.Builder(ActivityMain.this)
.setMessage("Allow")
.setPositiveButton(android.R.string.ok, new DialogInterface.OnClickListener() {
@Override
public void onClick(DialogInterface dialog, int which) {
ActivityCompat.requestPermissions(ActivityMain.this,
new String[]{Manifest.permission.MODIFY_PHONE_STATE},
PERMISSIONS_REQUEST_CODE);
}
}).setNegativeButton(android.R.string.cancel, null).show();
} else {
ActivityCompat.requestPermissions(ActivityMain.this,
new String[]{Manifest.permission.MODIFY_PHONE_STATE},
PERMISSIONS_REQUEST_CODE);
}
}
}
@Override
public void onRequestPermissionsResult(int requestCode,String permissions[], int[] grantResults) {
switch (requestCode) {
case PERMISSIONS_REQUEST_CODE: {
if (grantResults.length > 0 && grantResults[0] == PackageManager.PERMISSION_GRANTED) {
Toast.makeText(ActivityMain.this,"permissions granted",Toast.LENGTH_LONG).show();
} else {
Toast.makeText(ActivityMain.this,"permissions not granted",Toast.LENGTH_LONG).show();
}
return;
}
}
}
그러나 API 23 아래에서는 우리 매니페스트 파일에 선언함으로써이 권한을 사용할 수 있습니다. 왜 안드로이드가 API 23에서 사용하도록 허용하지 않는지 –
안드로이드 매니페스트에. 이 권한을 선언하면 오류 메시지가 표시됩니다. 이 사용 권한 및 세부 정보에 액세스 할 수 없다는 메시지가 표시됩니다. 언급 된이 [link] (https://developer.android.com/reference/android/Manifest.permission.html#MODIFY_PHONE_STATE)를 확인하십시오. ** 사용하지 마세요. 타사 응용 프로그램 **. – Sujewan
네, 맞습니다. –