ランタイム時にユーザーにアクセス許可を求めているときに、下にあるオーバーレイダイアログを表示しています。 CALL_PHONEある実行時に許可を求めている間にアプリケーションを終了する
if(ContextCompat.checkSelfPermission(MainActivity.this,permissions) == PackageManager.PERMISSION_DENIED) {
if (ActivityCompat.shouldShowRequestPermissionRationale(MainActivity.this, permissions)) {
ActivityCompat.requestPermissions(MainActivity.this,new String[] {permissions}, requestCode);
} else
Toast.makeText(MainActivity.this,"Need Permission",Toast.LENGTH_LONG);
}
マニフェスト
<uses-permission android:name="android.permission.CALL_PHONE" />
以下は私のコードです。
TIA
あなたがマニフェストにそれを宣言しましたか? – Alessio
また、shouldShowRequestPermissionRationale()を誤って使用しています。最初は偽となり、その後真となり、その後は再び偽となります。 checkSelfPermission()呼び出しの直後に初めてActivityCompat.requestPermissions()を直接呼び出す必要があります。少なくともAndroid(例:https://developer.android.com/training/permissions/requesting.html)を読んで、コードスニペットもあります。これは本当に基本的なものです。 – Alessio
クラッシュログはどこにありますか?それを含めてください。 – Tigger