pango
pango
  • 发布:2017-06-09 10:58
  • 更新:2017-07-13 22:27
  • 阅读:3162

指纹识别Android60+权限问题

分类:Native.js

// may not work
function testFingerPrint() {
var fpManager = plus.android.importClass("android.hardware.fingerprint.FingerprintManager");
var Context = plus.android.importClass("android.content.Context");
var fpService = plus.android.runtimeMainActivity().getSystemService(Context.FINGERPRINT_SERVICE);
log("========")
log(fpManager)
log(fpService)
alert(fpService.isHardwareDetected());
log("========")
}

如上面这段测试指纹识别的方法 isHardwareDetected() 因为官方hbuilder打包并没开放:
<uses-permission android:name=\"android.permission.USE_FINGERPRINT\"/>
指纹识别的设置(manifest.json界面设置法),所以我只能在代码增加(manifest.json代码添加)

然后经过测试,如果使用链接手机测试运行,会返回:
======== at www/js/project/common.js:19
function (nocreate) { this.UUID = window.plus.tools.UUID('JSB'); this.TYPE = 'JSBObject'; var args = window.plus.ios.Tool.process(arguments); if ( nocreate && plus.tools.IOS == plus.tools.platform ) {} else { window.plus.bridge.execSync2('Invocation', 'Instance',[this.UUID, 'android.hardware.fingerprint.FingerprintManager',args],null,true); } } at www/js/project/common.js:19
[object Object] at www/js/project/common.js:19
Uncaught java.lang.SecurityException: Must have android.permission.USE_FINGERPRINT permission.: Neither user 10179 nor current process has android.permission.USE_FINGERPRINT.;at android.hardware.fingerprint.FingerprintManager.isHardwareDetected at www/pages/oa/attendance.html:1

注:已经能返回 fpService 和 fpManger,但不能调用 isHardwareDetected() ,因为报没有USE_FINGERPRINT 权限!
而如果我把APP交付云打包,然后在手机安装,在安装后,我把手机对该APP设置为 “允许所有的权限”,则能正确调用 isHardwareDetected() ,并弹出true。

所以求问官方:
A. 能否在app manifest.json 增加 USE_FINGERPRINT 权限设置,并让它生效~!!!
B. 小弟目前正在搞一个省政府级APP,大部分功能都已完成,目前就缺 “指纹登录”功能,找偏官方都没资料,也不想自己写原生插件(因为指纹套件本身就是android60自带功能),所以希望官方给出一个具体的解决思路,越简单越好(形如我上面的例子),我也可以付费求样例(机型为华为MATE9和P10, 已经采购了几百台打算上HBUILDER的APP,目前就卡在这里)

2017-06-09 10:58 负责人:无 分享
已邀请:
pango

pango (作者)

有官方大神解答下么

pango

pango (作者)

顶 求官方大神解答下 或者给个思路

51ZionLin

51ZionLin

我配了权限啥也是没办法做,我用android studio写了,能正常监听指纹识别,然后翻译成njs之后出了问题,某些导出类用不了导致没法监听。而且manifest.json本来就可以自己写权限配置的!你没有好好研究hb。!

  • pango (作者)

    你好,请问你用android stuido如何处理,是写原生么? 翻译为njs后什么问题,另外重点是最后你是如何解决指纹识别的问题的,能否加个朋友,我们可以付费你求助解决这个指纹登录问题

    2017-06-11 16:45

猫猫猫猫

猫猫猫猫 - 用户已离线

离线打包插件实现了,不仅支持华为,还支持三星、小米、魅族、vivo、摩托、等多数手机。

  • 51ZionLin

    ..他说的是Njs 离线插件当然可以..

    2017-07-16 21:33

  • 猫猫猫猫

    @449769154@qq.com:是的,njs没法引用三星的指纹SDK。

    2017-07-17 09:05

该问题目前已经被锁定, 无法添加新回复