我一直在尝试实现来自https://github.com/smstuebe/xamarin-fingerprint的指纹插件
我的想法是,我希望用户能够使用他的指纹,而不是输入代码时,他正在签署的一些工作,他已经做了。
它适用于iOS设备,但当我在安卓设备上试用它时,"CrossFingerprint.Current.IsAvailable“总是返回false。有人知道可能出了什么问题吗?
下面是一些代码:
public class FingerprintAuthentication : IFingerprintAuthentication
{
public FingerprintAuthentication()
{
}
public bool IsFingerprintIdentificationAvailable()
{
return CrossFingerprint.Current.IsAvailable; //this works directly when using an iOS device, but always returns false when using an Android device
}
}我也尝试过实现DependencyService并处理Android项目中的方法,但是它返回相同的结果:
[assembly: Xamarin.Forms.Dependency(typeof(FingerprintAuthentication))]
namespace AVMobile.Droid.NativeImpl
{
class FingerprintAuthentication : IFingerprintAuthentication
{
public async Task<FingerprintAuthenticationResult> AuthenticateFingerprint(string reason)
{
var result = await CrossFingerprint.Current.AuthenticateAsync(reason);
return result;
}
public void DisableFingerprintIdentification()
{
Core.Settings.Settings.IsUsingFingerprintIdentification = false;
}
public void EnableFingerprintIdentification()
{
Core.Settings.Settings.IsUsingFingerprintIdentification = true;
}
public bool IsFingerprintIdentificationAvailable()
{
var result = CrossFingerprint.Current.IsAvailable;
//return result;
}
}
}有没有人知道什么可能出了问题?由于它适用于iOS设备,没有任何DependencyService等等,我只能想象它与安卓有关。
发布于 2016-11-03 14:19:19
我假设您使用的是<= 1.2,因为IsAvailable在新版本中不可用。
在您的版本中无法使用的原因可以是:
我已经发布了一个支持三星设备的更新版本。
它还为您提供了更多关于不可用性的原因的信息。
将软件包更新为1.3!
检查可用性
if(await CrossFingerprint.Current.IsAvailableAsync()){
// ...
}或
var avail = await CrossFingerprint.Current.GetAvailabilityAsync();
// avail contains the availability参见:http://smstuebe.de/2016/10/13/fingerprintv1.3/段落更改->中断以获得更多信息。
顺便说一句:您不需要一个特定于平台的实现。插件自己处理它。您可以在核心代码中直接访问CrossFingerprint.Current。
BTW2:您可能必须将您的IDE和NuGet更新为最新版本,因为我已经切换到了.netstandard :)
https://stackoverflow.com/questions/40398020
复制相似问题