ユーザに許可を求められたときに表示されるシステムダイアログのカスタムテキストを提供できますか?Android M権限ダイアログのカスタムテキストを提供
答えて
いいえ、ダイアログのテキストをカスタマイズすることはできませんが、許可を求める前に説明を提供することはできます。 developer.android.comから引用:
要求権限
あなたのアプリがアプリ マニフェストに記載されていた危険な許可を必要とする場合、それは権限を付与するユーザーを依頼する必要があります。 Android には、権限を要求するために使用できるいくつかの方法があります。 これらのメソッドを呼び出すと標準のAndroidダイアログが表示されますが、 ではカスタマイズできません。
は、アプリはいくつかの状況では権限
を必要とする理由、あなたが あなたのアプリが許可を必要とする理由ユーザーが理解しやすくしたい場合があります説明します。たとえば、ユーザーが 写真アプリを起動した場合、 アプリがカメラの使用を要求しても驚いていないかもしれませんが、ユーザーが にアクセスしたい理由を は理解できない場合があります連絡先。許可を要求する前に、 をユーザーに説明することを検討する必要があります。 は、説明でユーザーを圧倒したくないことに注意してください。あまりにも多くの説明を入力した場合、ユーザーは不満を感じてアプリケーションを削除する可能性があります。
あなたが使用する可能性がある方法の1つは、 ユーザーが既にその許可要求を拒否した場合にのみ説明を提供することです。ユーザーが に許可を必要とする機能を使用しようとしたが、 が許可要求を拒否している場合、そのユーザーは というユーザーに、なぜ の機能を許可する必要があるのかわからないことがわかります。そのような状況では、おそらく の説明を表示することをお勧めします。
ユーザーが説明を必要とする状況を見つけるのに役立つように、 は、 shouldShowRequestPermissionRationale()という便利な方法を提供しています。このメソッドは、 がこのアクセス権を以前に要求していて、ユーザが要求を が拒否した場合にtrueを返します。
我々は要求許可ダイアログをカスタマイズすることはできませんが、我々は、ユーザーに、なぜ私たちは以下を要求していることは、カスタム説明と方法であることをカスタム説明を提供することができます
private void checkForCameraPermission() {
// Here, thisActivity is the current activity
if (ContextCompat.checkSelfPermission(this,
Manifest.permission.CAMERA)
!= PackageManager.PERMISSION_GRANTED) {
if (ActivityCompat.shouldShowRequestPermissionRationale(this, Manifest.permission.CAMERA)) {
AlertDialog.Builder alertBuilder = new AlertDialog.Builder(this);
alertBuilder.setCancelable(true);
alertBuilder.setTitle("Camera permission necessary");
alertBuilder.setMessage("FITsociety need camera permission to read barcode.");
alertBuilder.setPositiveButton(android.R.string.yes, new DialogInterface.OnClickListener() {
@Override
public void onClick(DialogInterface dialog, int which) {
ActivityCompat.requestPermissions(BarCodeScannerActivity.this,
new String[]{Manifest.permission.CAMERA},
MY_PERMISSIONS_REQUEST_CAMERA);
}
});
AlertDialog alert = alertBuilder.create();
alert.show();
} else {
// No explanation needed, we can request the permission.
ActivityCompat.requestPermissions(this,
new String[]{Manifest.permission.CAMERA},
MY_PERMISSIONS_REQUEST_CAMERA);
// MY_PERMISSIONS_REQUEST_CAMERA is an
// app-defined int constant. The callback method gets the
// result of the request.
}
} else {
setBarCodeScannerView();
}
}
上記の方法ではない場合は許可が既に付与されているかどうかを確認カスタム説明は、この方法
ActivityCompat.shouldShowRequestPermissionRationale(this, Manifest.permission.CAMERA)
で必要とされる場合、それは、このメソッドのドキュメントはここに真のこのメソッドの戻り値shouldShowRequestPermissionRationale()あるチェックのみユーザーが権限ダイアログを拒否した場合、またはユーザーがアプリケーションの設定からアクセス許可を閉じた場合、カスタム説明付きの警告ダイアログが表示され、それが機能することをさらに期待してください。
- 1. フラグメントに表示されないAndroid M権限ダイアログ
- 2. レスポンスコード、Android M権限の違い
- 3. Android M権限ダイアログが「拒否」のクリックで解除されない
- 4. Android Mルートのランタイム権限チェックを無効にする
- 5. Android Mの権限がアプリを閉じる
- 6. Javaは管理者権限をEclipseに提供します
- 7. Android M権限のインストール/更新の動作
- 8. Android M権限システム:必要性を確認
- 9. Android Mで新しい権限を実装する
- 10. Android Mのリクエスト権限が動作しない
- 11. $ confirmダイアログのテンプレートを提供する
- 12. Android M権限ダイアログ - ユーザに表示される注文を選択してください
- 13. Android M権限の取り消し - 「危険な」権限を持つサービスの保護
- 14. Xamarin.FormsにAndroid権限のダイアログが表示されない
- 15. Androidルート権限
- 16. アンドロイドM/Nの権限ポップアップを表示しない
- 17. Androidランタイム権限ダイアログが表示されない
- 18. 電子メールのFacebook(JavaScript)権限ダイアログ - エラー
- 19. Androidファイルの権限
- 20. Android gpsの権限
- 21. ASP.NET:web.configの権限迂回を迂回してCSVファイルが提供される
- 22. jdk1.4のアプレットへのファイル書き込み権限の提供方法
- 23. Android NDKネイティブ権限
- 24. Runtime権限Marshmallow Android
- 25. Android用READ_EXTERNAL_STORAGE権限
- 26. アポストロフィ片が提出:公共の権限
- 27. Android M権限:onRequestPermissionsResult()がカスタムボタンクラスで呼び出されていない
- 28. Androidエミュレータのsdcard権限
- 29. Android CALL_PHONE権限の問題
- 30. マニフェストのAndroidユーザー権限