2016-10-20 1 views
0

私はEasyPermissionsを使用して、特定のアクセス許可がアンドロイドで許可されているかどうかを確認し、そうでない場合はリクエストします。クールなライブラリ、素晴らしい作品ですが、私はまだいくつかのアクセス許可が拒否された場合に対処する方法を考え出すことになっていない。拒否されたアクセス権を処理する方法Andriod M(EasyPermissions)

ので、基本的には上のようなコードを実行するには、

if (EasyPermissions.hasPermissions(Splash.this, perms)) { 

     TelephonyManager telephonyManager = (TelephonyManager) getSystemService(Context.TELEPHONY_SERVICE); 
     String IMEI = telephonyManager.getDeviceId(); 
     String SimSimSerial = telephonyManager.getSimSerialNumber(); 

     Toast.makeText(Splash.this, "IMEI: " + IMEI + " SimSerial: " + SimSimSerial, Toast.LENGTH_SHORT).show(); 


    } else { 

     EasyPermissions.requestPermissions(Splash.this, "Without these permissions, the app is unable to successfully complete authentication. Please allow us to access your device so that we can better serve you. " ,PERMS_REQUEST_CODE, perms); 
    } 

コードの内訳を確認するために作成:アクセス権が存在する場合、罰金である他の要求を続けます。私の質問は、要求中に誰かが[質問しない]ボタンをクリックした場合です。 EasyPermissionsの人は何も(無効)を返していないdoesntの要求の許可方法として、この関数を呼び出すために、どこにその

EasyPermissions.somePermissionPermanentlyDenied(Splash.this, permsList) 

私のジレンマがあることのための機能を持っています。私は

if (EasyPermissions.hasPermissions(Splash.this, perms)) {... 
} else if (EasyPermissions.somePermissionPermanentlyDenied(Splash.this, permsList)) { 

} else { 
    EasyPermissions.requestPermissions(Splash.this, "Without these permissions, the app is unable to successfully complete authentication. Please allow us to access your device so that we can better serve you. " ,PERMS_REQUEST_CODE, perms); 
} 

のようなものを試してみましたが、それは常に権限を実行するユーザが実際のランタイムでは決してボタンをクリックしたときに開始していない上のものを否定しました。すべてのヘルプはEasyPermissions https://github.com/googlesamples/easypermissions

+0

Easy Permissionsを使用しているフラグメント/アクティビティにEasyPermissions.PermissionCallbacksを実装しようとしましたか? –

+0

いいえ、どのように私はそれを呼び出すのですか?それはオプションであるとの意見でした... –

+0

はいEasyPermissions.PermissionCallbacksを実装して、メソッドを追加して拒否を処理することができます –

答えて

2

チェックこのlinkのおかげで...

リンクを高く評価しています。

ここであなたがonRequestPermissionsResultだろうメソッドを追加するために提供されます。このとEasyPermissions.PermissionCallbacksを実装する必要があり、をonPermissionsDenied、をonPermissionsGranted。次に、onPermissionsDeniedで拒否ステータスを処理できます。 試してみてください。

+1

チーフ、これは私がずっと多くを理解するのを助けました。 –

+0

実際、 'onRequestPermissionsResult'は' EasyPermissions.PermissionCallbacks'によって定義されていません。これは 'Activity'(または' Fragment'クラスのサポート)から継承したメソッドです。 –

関連する問題