私はAndroidアプリでAndroidランタイムパーミッションを実装しています。私は、実行時に許可が許可されるか拒否されるかを確認することもできます。しかし、私は、ユーザーが最初にPermissionを拒否してから、Settingsのアプリケーション権限メニューで許可した場合、それがあるかどうかを知りたいと思う。設定からAndroidランタイムパーミッションを確認する
-1
A
答えて
0
(サービスは常に何らかの変更が生じたかどうかをチェックするために実行されていると仮定)私はI am also able to check if a permission is allowed or denied at runtime
のために少しトリックを権限
public final class Permissions {
public static final int INTERNAL_STORAGE_REQUEST_CODE = 1;
public static final int FINE_LOCATION_REQUEST_CODE = 2;
private static final int COARSE_LOCATION_REQUEST_CODE = 3;
public static final String READ_EXTERNAL_STORAGE = Manifest.permission.READ_EXTERNAL_STORAGE;
public static final String ACCESS_FINE_LOCATION = Manifest.permission.ACCESS_FINE_LOCATION;
public static final String ACCESS_COARSE_LOCATION = Manifest.permission.ACCESS_COARSE_LOCATION;
public static boolean havePermissionFor(Context context, String permission) {
return Build.VERSION.SDK_INT < Build.VERSION_CODES.M ||
ActivityCompat.checkSelfPermission(context, permission) == PackageManager.PERMISSION_GRANTED;
}
public static void showPermissionDetails(String message, Context context, DialogInterface.OnClickListener okListener) {
M.showAlert(context, "Request for permission", message, "ALLOW", "DON'T ALLOW", okListener, null, false);
}
public static void requestForPermissions(Activity activity, String[] permissions, int permissionRequestCode) {
ActivityCompat.requestPermissions(activity, permissions, permissionRequestCode);
}
public static void requestPermissionForFragment(Fragment fragment, String[] permissions, int permissionRequestCode) {
fragment.requestPermissions(permissions, permissionRequestCode);
}
public static boolean shouldShowPermissionRationale(Activity activity, String permission) {
return ActivityCompat.shouldShowRequestPermissionRationale(activity, permission);
}
public ArrayList<String> getRequiredPermissions(Context context, String... permissions) {
ArrayList<String> requiredPermissionsList = new ArrayList<>();
if (Build.VERSION.SDK_INT < Build.VERSION_CODES.M) return requiredPermissionsList;
for (String permission : permissions) {
if (!havePermissionFor(context, permission))
requiredPermissionsList.add(permission);
}
return requiredPermissionsList;
}
}
2
一つをチェックし、要求するため、以下のヘルパークラスを使用します。この詳細を保存(拒否または許可)してから、ユーザーが設定から何かを変更した場合は、アプリの権限機能で以前の詳細を簡単に比較できます。
例:保存された詳細が拒否され、その後、許可機能でアプリケーションを開くと、保存された詳細が拒否されたことが表示されますが、許可されていることがわかります。
+0
しかし、問題は、私のアプリは一度だけ開いて、それは常にバックグラウンドで実行されているということです –
関連する問題
- 1. マルチモジュールプロジェクトでAndroid Mランタイムパーミッションを処理する
- 2. コマンドラインからSparkの設定を確認する方法は?
- 3. Androidで同期設定を確認する方法
- 4. SDKを使用したAndroidランタイムパーミッション
- 5. phpinfoでサーバ設定を確認する
- 6. ベストulimitの設定を確認する
- 7. プロパティの設定値を確認する
- 8. Androidランタイムパーミッションが動作しない
- 9. Androidでのランタイムパーミッションの無効化
- 10. Androidの設定が以前に設定されているかどうかを確認
- 11. 設定を確認するにはappcmdがありますか?
- 12. Androidでランタイムパーミッションをうまく適用するには?
- 13. Roslyn - ビルド設定から除外されたプロジェクトを確認する
- 14. Javascript - Cookieが設定されているか確認する
- 15. Androidからスレッドとの接続を確認する
- 16. AndroidアプリケーションからPaypalのメールアドレスを確認する
- 17. WebサーバーからAndroidユーザーアカウントを確認する
- 18. Android Marshmallow:プログラムでランタイムパーミッションを許可する方法はありますか?
- 19. クッキー - jqueryモーダルを設定するダイアログを確認する
- 20. Android sdkmanagerのプロキシ認証をコマンドラインから設定する方法は?
- 21. Android Appiation設定から対応するアプリ設定に移動
- 22. 特定のビットが設定されているかどうかを設定して確認する方法は?
- 23. PHP変数を設定するかどうかを確認する
- 24. 現在のAUTOCOMMIT DDL設定の確認
- 25. Xcode 4.2ウィザード設定の確認/変更
- 26. コマンドプロンプトでJVM固有の設定を確認できますか?
- 27. kubeletの起動オプション/設定を確認しますか?
- 28. ログインCookieを設定して確認しますか?
- 29. Powershellスクリプトを使用してIIS設定を確認する
- 30. アラームが設定されているかどうかを確認する方法
ユーザーがあなたのアプリを使用している間はいつでもアクセス許可をチェックできます。なぜ、バックグラウンドで権限の変更を検出したいのですか? – Sony