オーバーレイパーミッションを受信すると、アプリケーションの実行を開始できるように、onRequestPermissionsResult()を起動しようとしています。残念ながら、トーストが送信されていないときにonRequestPermissionsResult()を呼び出すことはできません。私は、オーバーレイパーミッションを要求するときに、ダイアログボックスを受け入れたり拒否したりしないという事実と関連があると感じています。代わりにトグルボタンが表示されます。あなたがACTION_MANAGE_OVERLAY_PERMISSION
を使用する方法はありませんonRequestPermissionsResultがオーバーレイ許可のためにトリガーされていません
public class Main extends Activity {
private static final int REQUEST_OVERLAY_PERMISSION = 1;
@Override
public void onCreate(Bundle savedInstanceState)
{
super.onCreate(savedInstanceState);
if(Build.VERSION.SDK_INT >= Build.VERSION_CODES.M)
{
Intent intent = new Intent(Settings.ACTION_MANAGE_OVERLAY_PERMISSION, Uri.parse("package:" + getPackageName()));
startActivityForResult(intent, REQUEST_OVERLAY_PERMISSION);
}
}
@Override
public void onRequestPermissionsResult(int requestCode, String[] permissions, int[] grantResults)
{
Toast.makeText(this, "onRequestPermissionsResult has been called", Toast.LENGTH_SHORT).show();
//Toast.makeText(this, "RequestCode: " + requestCode + " permissions " + permissions + " grantresults: " + grantResults, Toast.LENGTH_SHORT).show();
}
private void runService()
{
Intent svc = new Intent(this, OverlayShowingService.class);
startService(svc);
finish();
}
}