Android 9/Android P (API 28) is said to support facial recognition via BiometricPrompt. All of the tutorials that I've read use BiometricManager for detecting Facial recognition support - but this class wasn't added until API 29 (Android 10/Android Q).
So, how can I detect facial recognition support on API 28?
My preference is to do this without using the AndroidX support library, as I've read conflicting information about what the support library's version of BiometricManager.canAuthenticate() results mean when run on API 28 and lower.
Answering my own question. It appears that even on Android 10 there is no way to find out if the device supports facial recognition, since BiometricManager.canAuthenticate() will return success if the device supports fingerprint auth. From API Docs:
This is the equivalent of canAuthenticate(int) with Authenticators#BIOMETRIC_WEAK
And BiometricManager.canAuthenticate(int) isn't available until API 30.
So using BiometricManager on Android 10 is no different than using the deprecated FingerprintManager.
So working back to my question about BiometricManager support on Android 9. There is no difference between using FingerprintManager and BiometricManager when it is running on an Android 9 device. Therefore the equivalent of BiometricManager is FingerprintManager.
But this doesn't help someone like me that is looking for a way to determine if the device supports facial recognition. There doesn't seem to be any way to determine this pre Android 11.
Related
I want to open camera in app itself and click pictures automatically when function is called. Camera2 api is not compatible with all devices. I need solution so that the camera should be compatible with all devices. If there is any library that can solve my problem or any other solution?
crammeur gives a good advice:
You can use camera api ( developer.android.com/guide/topics/media/camera ) if your target android api < 21
But there is a bot more:
Actually, you can use the deprecated camera API regardless the target Android API. More than that, I recommend to use this old API for devices that has API >= 21, but feature a Legacy level of camera2 device.
But it is not good to rely on the backwards compatibility layer for devices with native camera2 support. The best practice is to have both solutions in your app, and choose the one that is best for specific device.
You can learn and reuse the code of some open-source libraries in your app, for example CameraKit-Android or Fotoapparat.
I am using the Google SafetyNet API to detect device tampering in my application. Reference:: https://developers.google.com/android/reference/com/google/android/gms/safetynet/package-summary
But I cannot find any reference to the minimum support OS version. I thought I read somewhere that it was 7.0 but can't find that now.
It used to say "since" in the API docs, which was useful to tell the requirements but that seems to have disappeared.
What is the earliest version of Android that SafetyNet will work on, as supported by Android? Thanks.
All Play-enabled Android devices using Android 2.3 and above already use SafetyNet as long as the Play Services package is updated.
here
As mentioned in the prior response, Android 2.3. is the minimum supported version. However it should be noted that prior to Andoird 6.0, the SafetyNet could not read the device's bootstate, limiting the effectiveness of SafetyNet.
See Slide 50
I'm working on an Andriod Studio project and I'm trying to use the Google Cloud Vision API. I've been trying to figure out if I can use it since my target sdk is level 15-25, but I can't find the minimum required sdk level anywhere in the documentation.
The only information relevant to this that I found was the only sample application on their website and it says under prerequisites "
An Android device running Android 5.0 or higher 1
That doesn't necessarily mean it doesn't work for lower API levels. Does anyone know what's the minimum requirement?
According to this link vision API depends on the Google Play Services which are curently available for Android 4.0 and above. So for now I think you can continue using the API for your min SDK version 15.
But on a long run there will be many more cool features that will added to lollipop and above only. So the question is, do you want support or quality? Either comprimise the quality for the devices which has 4.0 or focus on quality by building for 5.0 and above because soon devices below 5.0 are going to be obsolete.
I want to use Android Finger Print Scanner API in my Android application.But as I am I found, I need to have android marshmallow OS to use this feature.
I also downloaded sample app from android official site, and they have also mentioned min required sdk as 23.
So is that mean that, I cant use this API before 23?
Even trustworthy Reference of CommonsWare suggests its not possible
http://stackoverflow.com/questions/32563262/fingerprint-scanner-support-for-lower-android-versions
If I am right that, its must have android marshmallow to support finger print scanner, How can I provide support of Finger Print Scanner function to pre marshmallow?
I don't know what type of app you are building/have.
There are some options.
Use fingerprint only on API level 23 and implement some other security measure on API level lower than 23
Check your app statistics to determine the commonly used devices and check for device specific fingerprint integration. (Samsung has SDK for fingerprinting if the device has a scanner built in.)
Use the Android implementation on API level 23 and the device specific SDK for devices lower than API 23.
Don't use fingerprint at all.
for Device with OS API lower than API 23, just access manufacturer website and find "SDK", "API", ... to find fingerprint sdk (lib file) to use for your app.
For Sky, it is PantechFingerprint SDK (Ex: Sky A890) : https://github.com/pantechfingerprint/PantechFingerSDK
For Samsung, it is Pass SDK : http://developer.samsung.com/sensor-extension#pass
I don't know FingerPrintManger of Android OS API 23 and above will works properly with all kind of FingerPrint sensor of a lot of smart phone on the market. I even haven't any Android 6.0 Phone to check. Too bad for a developer like me.
I am developing a snake and ladder game for Android handsets. Currently I am using Android API Level 10 (2.3.3)
ImageView doesn't support setX, setY till API level 10; this feature's support starts from API level 11. So I want to add that support to API Level 10. Any help or suggestions will be highly appreciated.
This is not possible.
An API level reflects a version of Android running on a device. You cannot change the version of Android on millions of devices just by asking on StackOverflow. Those device users can upgrade, or they can download a modded ROM for their device that supports API Level 11 or higher.