런타임 권한을 요청하고 있습니다. 허가를 요청하고 모든 것이 잘됩니다. 하지만 문제는 권한 대화 상자가 어떻게 든 액티비티 외부에 표시된다는 것입니다. 액티비티를 닫은 다음 허가 대화 상자를 표시합니다. 대화를 내 활동에 표시하고 싶습니다. android의 활동에서 권한 대화 상자가 표시됩니다.
이
내 코드protected void onCreate(Bundle savedInstanceState) {
super.onCreate(savedInstanceState);
setContentView(activity_main);
setPasswordText = (EditText) findViewById(R.id.setPasswordText);
setSecurityText = (EditText) findViewById(R.id.setSecurityText);
messageToSendText = (EditText) findViewById(R.id.messageToSendText);
numberToSendText = (EditText) findViewById(R.id.numberToSendText);
/* if(Build.VERSION.SDK_INT >= 23) {
if (!Settings.canDrawOverlays(this)) {
Intent intent = new Intent(Settings.ACTION_MANAGE_OVERLAY_PERMISSION,
Uri.parse("package:" + getPackageName()));
startActivityForResult(intent, 1234);
}
}
else
{
Intent intent = new Intent(this, Service.class);
startService(intent);
} */
KING();
}
// @TargetApi(Build.VERSION_CODES.M)
public void KING() {
// Toast.makeText(this, "Executed", Toast.LENGTH_SHORT).show();
if (Build.VERSION.SDK_INT >= 23){
if (checkSelfPermission(Manifest.permission.SEND_SMS) == PackageManager.PERMISSION_GRANTED) {
Toast.makeText(this, "Permission Granted", Toast.LENGTH_SHORT).show();
} else {
if (shouldShowRequestPermissionRationale(Manifest.permission.SEND_SMS)) {
Toast.makeText(this, "RECEIVE SMS permission is needed", Toast.LENGTH_LONG).show();
}
// Toast.makeText(this, "Permission Not Granted", Toast.LENGTH_SHORT).show();
requestPermissions(new String[]{Manifest.permission.SEND_SMS}, REQUEST_SEND_SMS);
}
}
}
@Override
public void onRequestPermissionsResult(int requestCode, String[] permissions, int[] grantResults){
if(requestCode == REQUEST_SEND_SMS){
if(grantResults[0] == PackageManager.PERMISSION_GRANTED){
Toast.makeText(this, "PERMISSION GRANTED BY YOU", Toast.LENGTH_LONG).show();
}else{
Toast.makeText(this, "PERMISSION DENIED BY YOU", Toast.LENGTH_LONG).show();
}
}else{
super.onRequestPermissionsResult(requestCode, permissions, grantResults);
}
}
활동을 닫으시겠습니까? 확실합니까? 내가 아는 한, 활동을 일시 중지합니다. –
좋아. 일시 중지하더라도. 사실, 활동 레이아웃은 표시되지 않고 권한 대화 상자 만 표시됩니다. –
'KING()'메서드를'onResume()'으로 옮겨보십시오. –