許可設定が[設定]から[許可]に変更されたときに、アプリケーションにブロードキャストやアラートが表示されますか?私は、アプリケーションが起動し、LOCATION GROUP権限を持っているときに何らかのログを開始するシナリオを持っています。しかし、ユーザーがアプリケーションのクラッシュの間にこの権限を取り消すと、ユーザーがログを取り消したときにログを停止する方法はありません。このロギングは第三者図書館からのものですので、間にチェックパーミッションのチェックを入れることはできません。アンドロイドでのブロードキャストアクション許可の変更M
答えて
許可設定が「設定」から「変更」に変更されても、アプリケーションはブロードキャストやアラートを受信しませんか?
これは文書化されていません。
以前に許可された権限をユーザーが取り消すと、プロセスは終了します。次に実行すると、パーミッションのチェックの一環としてパーミッションの変更を知ることになります。
ユーザーが以前に拒否されたアクセス許可を与えた場合、プロセスはではなく、が終了しています。しかし、もう一度、checkSelfPermission()
に電話をすると、アクセス権があることがわかります。
ここでの教訓は、アクセス許可の検索結果をキャッシュしないことです。彼らはかなり安いコールのようですので、必要に応じてcheckSelfPermission()
に電話してください。
targetSdkVersion
が23未満の場合、checkSelfPermission()
は役に立ちませんが、SecurityException
ではなく、偽のデータを取得する必要があります。ロケーションの修正の場合、ユーザーがロケーションへのアクセス許可を取り消した場合、ロケーションを取得しないでください。
しかし、ユーザーは、当社のアプリケーションのクラッシュ
の間にこの権限を取り消すとき、私は、バックグラウンドサービスが実行されているシナリオを試していないと、ユーザーが許可を取り消します。それはあなたのプロセスを終了する必要がありますので、あなたのサービスが次回実行されるときに権限の変更について知ることができます。あなたのプロセスがではなく、で終了していることが判明している場合は、Androidのバグの兆候かもしれません。
実際には、設定/アプリケーションから権限を取り消してから、自分のアプリに戻すことができます。 –
私は許可を取り消しましたが、今は私がpsを実行してもプロセスは実行されませんが、私のアプリケーションは最近のアプリケーションリストに残っており、そこから起動することができます。私は最近のアプリのリストからそれをきれいにすることができる方法はありますか? –
@SumitShrivastava: "しかし、私のアプリケーションはまだ最近のアプリのリストにあります" - 確かに。 Android 5.0以降では、永遠にそこにいます。 「最近のアプリリストからもそれを消去できる方法はありますか?」 - ユーザーが設定でアクセス権を切り替えたときではありません。 overview/recent-apps画面に表示されるあなたのアプリによって引き起こされている問題を説明してください。 – CommonsWare
- 1. AndroidのMテストREAD_PHONE_STATE(危険なアクセス許可)の許可
- 2. ファイアウォールユーザーの許可後許可アンドロイド
- 3. ネイティブインタフェース(アンドロイド)でのアクセス許可
- 4. Android Mランタイム許可の問題
- 5. 変更の許可ダイアログ)
- 6. Android M以下の許可を取り扱うM
- 7. アンドロイドのttyポートのアクセス許可と所有権をプログラムで変更する
- 8. アンドロイドのアクセス許可READ_CALENDAR&WRITE_CALENDAR
- 9. アンドロイドnoHistoryは許可
- 10. アンドロイドSMS許可マシュマロ
- 11. タッチでwsgiファイルの時間を変更する別のユーザーの能力を許可する-m
- 12. データベースの変更を許可する
- 13. リストアイテムのアクセス許可を変更する
- 14. サブバージョンファイルのアクセス許可を変更する
- 15. フォルダのアクセス許可を変更する
- 16. ntpのアクセス許可を変更する
- 17. Android MでAndroidのアクセス許可を有効にする方法
- 18. アンドロイドC2DM不明許可com.google.android.providers.gsf.permission.READ_GSERVICES
- 19. アンドロイド:INSTALLLOCATION = "preferExternal" とWRITE_EXTERNAL_STORAGE許可
- 20. アンドロイド23 URI許可拒否
- 21. アンドロイドMでプログラムでWiFi設定を変更するための開発?
- 22. 利用状況アンドロイドへのアクセス許可
- 23. 可能:ファイルのアクセス許可を変更するが、ディレクトリは変更しない
- 24. アンドロイド<許可を使用しています>許可
- 25. Android Mリクエスト複数の許可を一度に
- 26. PackageManager:許可を与えるない - AndroidのM
- 27. Android Mのマイクに対する許可をリクエストする
- 28. Android M(API 23) - Phonegapアクセス許可の問題
- 29. 許可をリクエストした後、Android MでパッケージインストーラがクラッシュするREAD_SMS
- 30. Oracleによる許可変更シーケンス
ブロードキャストがありません。アクセス許可が与えられているかどうかを確認することができます。 – tyczj
このようなsuxorsは、特に、*必須*、プロンプト、承認済みのバックグラウンドで実行されているサービス許可を得ていますが、誰かがパーミッションを無効にして*実行中*を拒否しています。権限が変更されたことを伝えるイベントがなければ、サービスは正常に動作し続けるように見えます。すでに承認されている権限へのすべての呼び出しに対して権限をテストすることは、賢明に推奨されるプラクティスに従わなければなりません。イベントをキャッチしてサービスを一時停止し、再開が必要な第一級の通知を促す方がよいでしょう。 – swooby