Android初心者です。
ターゲットAPIが22のプロジェクトを引き継ぎました。
状況
既存アプリでも2018年11月からはAPIレベルは26が必須になるため、
既存には含まれていない、パーミッションのチェック処理と、
権限付与の確認ダイアログの表示を実装中です。
困っていること
Android Studio でエミュレータを起動したとき、
権限付与の確認ダイアログは出るように実装できたのですが、
そのダイアログの直前に、アプリが停止した旨を通知するダイアログが出ていることです。
停止した旨を告げているダイアログを消したあと、
権限付与のダイアログでパーミッションの設定をすることはできます。
そのあと、再度アプリを起動すれば、権限は付与されていて正常に使うことはできます。
やりたいこと
権限をチェックを先にし、初期起動時でもアプリが停止しないようにしたいです。
今のままでは、最初の起動時にアプリが閉じてしまうので、二度手間になっています。
以下、コードになります。
private final int REQUEST_CODE = 1000; @Override protected void onCreate(Bundle savedInstanceState) { super.onCreate(savedInstanceState); // 複数のパーミッションを扱う String[] PERMISSIONS = { Manifest.permission.ACCESS_FINE_LOCATION, Manifest.permission.CAMERA}; // パーミッションを許可していなければダイアログを表示 if (ContextCompat.checkSelfPermission(this, Manifest.permission.CAMERA) != PackageManager.PERMISSION_GRANTED) { ActivityCompat.requestPermissions(this, PERMISSIONS, REQUEST_CODE); return; }
パーミッションの許可がカメラだけになっていますが、そこはとりあえず置いておいて下さい…。
上記は MainActivity.java からの抜粋です。
どうすればアプリが停止する前にパーミッションのチェックができるでしょうか?
onCreate のタイミングより前に出来ると思いますが、該当する箇所が分かりません。
ご教授のほど、よろしくお願い致します。
※ブレイクポイントで確認してみたところ、想定どおりに動きました…。
非同期処理がある?のかも知れません。
回答1件
あなたの回答
tips
プレビュー
バッドをするには、ログインかつ
こちらの条件を満たす必要があります。