2016-12-18 13 views
-1

私のアプリはマニフェストファイルにいくつかの(危険な)権限を定義しています。しかし、(悪意のあるユーザー/悪い)ユーザーは、アクセス許可を無効にする設定 - > apps - > appname - > permissionsを開くことができ、ユーザーはApp.create()とapp無効なアクセス許可で再初期化)Android:ユーザーがMarshmallowのアクセス許可を変更できないようにする方法

ユーザーが手動でアクセス許可を変更しないようにするにはどうすればよいですか?

Gradleのファイルは以下のようになります(私は、しかし、私は23に対象バージョンを変更したいscroll down toパソコンへ転送、6.0.1でアプリを実行しています。したがって、私はhttps://developer.android.com/guide/topics/security/permissions.html#perm-groupsから危険な権限を組み込むことはできませんよ)

android { 
compileSdkVersion 21 
buildToolsVersion "21.1.2" 
defaultConfig { 
    applicationId "com.XX.main" 
    minSdkVersion 19 
    targetSdkVersion 21 
    versionCode 21 

} 

次の図は、権限が有効になっており、また、settings -> apps -> appname -> permissions

+0

これは、すでにインストール時のアクセス許可と異なる理由です。ユーザーがこれを行うのを防ぐことはできません。 – Blackkara

+0

'targetSdkVersion 21'であっても、あなたは6.0上でその場所を得ることができません。 –

+1

あなたはそうすることはできませんが、それ以上のことは許されません。これは私の電話です。私はあなたのアプリケーションが私のハードウェア上で動くときに何ができるかできないかを決める。あなたではありません。 –

答えて

5

はどうやってアクセス権を手動で変更することからユーザーを防ぐことができます(そのため、ユーザがそれらを無効にすることができます)グレーアウトされていません示して?

これはできません。あなたのデバイスではなく、ユーザーのデバイスで、Android 6.0以降では、ユーザーは実行時のアクセス権を取り消すことができます。

いつでもユーザーが手動で設定からアクセス権を変更し、それが(App.createを呼び出す)と、アプリの再初期化無効な権限を持つ

あなたのプロセスは、多くの状況で終了します。ユーザーが実行時アクセス許可を無効にするのは、その1つのみです。終了が発生するあらゆる理由(たとえば、アプリがバックグラウンドにある間にシステムRAMを解放するなど)のために、アプリが終了するプロセスを処理できる必要があります。

ただし、ターゲットのバージョンを23に変更したくありません。したがって、私はあなたが何かを行うとクラッシュを避けることができるので、あなたはまだ、ユーザーが許可を取り消されたかどうかを見ることがuse PermissionCheckerにできるかもしれない危険な権限

を組み込むことができませんしています。

関連する問題