2017-03-03 4 views
2

isHardwareDetected() 및 hasEnrolledFingerprints()는 항상 false를 반환합니다. 타겟 API 24가 정상적으로 작동한다는 것을 알았습니다. 25 번 문제입니다. 최신 API를 사용하고 싶지만 지문 인식 기능이 없으면 불가능합니다.FingerprintManagerCompat isHardwareDetected는 targetAPI에서 false를 반환합니다. 25

활동

FingerprintManagerCompat from = FingerprintManagerCompat.from(getApplication()); 
    boolean hardwareDetected = from.isHardwareDetected(); 
    boolean b = from.hasEnrolledFingerprints(); 

app.gradle

android { 
compileSdkVersion 25 
buildToolsVersion "25.0.2" 
defaultConfig { 
    applicationId "com.tkuhn.myapplication" 
    minSdkVersion 15 
    targetSdkVersion 25 
    versionCode 1 
    versionName "1.0" 
    testInstrumentationRunner "android.support.test.runner.AndroidJUnitRunner" 
} 
buildTypes { 
    release { 
     minifyEnabled false 
     proguardFiles getDefaultProguardFile('proguard-android.txt'), 'proguard-rules.pro' 
    } 
} 
} 

dependencies { 
compile fileTree(dir: 'libs', include: ['*.jar']) 
androidTestCompile('com.android.support.test.espresso:espresso-core:2.2.2', { 
    exclude group: 'com.android.support', module: 'support-annotations' 
}) 
compile 'com.android.support:appcompat-v7:25.2.0' 
testCompile 'junit:junit:4.12' 
} 
+4

는 https://issuetracker.google.com/issues/37132365 –

답변

0
FingerprintManager manager = (FingerprintManager) getSystemService(FINGERPRINT_SERVICE); 
     if (manager.isHardwareDetected()) { 
      //code here 
     } 

희망

+0

나는의 minSdkVersion = 15 –

+0

당신은 확인할 수 있기 때문에 FingerprintManagerCompat을 사용해야합니다. 'if (Build.VERSION.SDK_INT> = Build.VERSION_CODES.N_MR1) {}' –

2

새로운 지원 라이브러리가있는 문제들이 지금 적극적으로 확인하고 있다는 사실에서 오는 도움말 장치 시스템 기능에는 FEATURE_FINGERPRINT이 포함됩니다. 영향을받는 장치에는 지문 센서가 있어도 해당 구성에 지정된이 기능이없는 것 같습니다. 이는 기기 제조업체 측의 잘못입니다.

당신은 대체 솔루션으로 Reprint 또는 RxFingerpring을 시도 할 수 false

if (context.getPackageManager().hasSystemFeature(PackageManager.FEATURE_FINGERPRINT)) { /**/ } 

를 반환합니다 FingerprintManagerCompat에 체크합니다.

0

가장 좋은 값은 FingerprintManager & FingerprintManagerCompat입니다.

는 사용 FingerprintManagerCompat나이가 장치에 대한을 isHardwareDetected 및 FingerprintManager는 새 장치를을 isHardwareDetected.

private boolean isSensorAvialable() { 
     if (Build.VERSION.SDK_INT >= Build.VERSION_CODES.M) { 
      return ActivityCompat.checkSelfPermission(AppContext, Manifest.permission.USE_FINGERPRINT) == PackageManager.PERMISSION_GRANTED && 
        AppContext.getSystemService(FingerprintManager.class).isHardwareDetected(); 
     } else { 
      return FingerprintManagerCompat.from(AppContext).isHardwareDetected(); 
     } 
    }