2017-11-22 33 views
0

私は指紋を実装しようとしていますが、それが問題であるかどうかはわかりませんが、Android NougatではUSE_FINGERPRINTのアクセス権は決して尋ねられません。だから私は決してダイアログのポップアップを取得しません。 ACCESS_FINE_LOCATIONの実装があり、動作します(アプリケーションが許可または拒否するかどうかを尋ねます)。私のマニフェストでAndroid nougat USE_FINGERPRINTのアクセス許可

:フラグメントで

<uses-permission android:name="android.permission.USE_FINGERPRINT" /> 

<uses-feature 
    android:name="android.hardware.fingerprint" 
    android:required="false" /> 

if (ActivityCompat.checkSelfPermission(getActivity(),Manifest.permission.USE_FINGERPRINT) != PackageManager.PERMISSION_GRANTED) { 
     Log.v(TAG, "NO permissions USE_FINGERPRINT"); 
     if (Build.VERSION.SDK_INT >= Build.VERSION_CODES.M) { 
      Log.v(TAG, "No requestPermissions"); 
      ActivityCompat.requestPermissions(getActivity(), new String[]{Manifest.permission.USE_FINGERPRINT}, FingerprintHandler.FINGERPRINT_PERMISSION); 
     } 
     return; 
    } 

答えて

0

この手順に従います。

は許可上記のマニフェストにこれを追加します。

<uses-feature android:name="android.hardware.fingerprint" android:required="true" /> 

あなたが常に必要pe電話のハードウェアリソースにアクセスするための許可。それはあなたのためにそれを行います。活動のその後

、次のコードを実行します。

if (Build.VERSION.SDK_INT >= Build.VERSION_CODES.M) { 
     keyguardManager = (KeyguardManager) getSystemService(KEYGUARD_SERVICE); 
     fingerprintManager = (FingerprintManager) getSystemService(FINGERPRINT_SERVICE); 

     if (!fingerprintManager.isHardwareDetected()) { 
      Toast.makeText(getApplicationContext(), "Your device doesn't support fingerprint authentication", Toast.LENGTH_SHORT).show(); 
     } 
     if (ActivityCompat.checkSelfPermission(this, Manifest.permission.USE_FINGERPRINT) != PackageManager.PERMISSION_GRANTED) { 
      Toast.makeText(getApplicationContext(), "Please enable the fingerprint permission", Toast.LENGTH_SHORT).show(); 

     ActivityCompat.requestPermissions(getActivity(), new String[]{Manifest.permission.USE_FINGERPRINT}, FingerprintHandler.FINGERPRINT_PERMISSION); 

     } 

     if (!fingerprintManager.hasEnrolledFingerprints()) { 
      Toast.makeText(getApplicationContext(), "Your Device has no registered Fingerprints! Please register atleast one in your Device settings", Toast.LENGTH_LONG).show(); 
     } 
} 

を、私はそれがあなたのために働くと思います。ありがとう!!

+0

動作しませんでした。まだ、許可を求めることはありません。私は以下のコメントは右の – returnvoid

+0

あなたが機能を必要とする場合は、私の場合には私が必要なものではない機能でデバイスにインストールされるだけであることを確認したと思う – returnvoid

+0

実際に今。それは指紋が含まれているかどうかを確認するデバイスリソースを確認します –

3

これは正常です。指紋の許可is not marked as dangerousとアクセスするように要求する必要はありません。マニフェストでパーミッションを宣言すると自動的に付与されます。

センサーに直接アクセスすることはできず、FingerprintManagerを介してすべての呼び出しがプロキシされているため、これはいくらか制限されています。

+0

あなたが今共有したドキュメントでは、 – returnvoid

関連する問題