bol*_*ano 9 android mac-address bluetooth android-permissions ionic3
我目前正在开发一个Ionic 3应用程序,我需要在Android设备上获取手机的蓝牙MAC地址(或能识别蓝牙网络内设备的东西),我一直在尝试获取MAC地址(或UUID等). )使用UidIonic 的本机插件,以及本机插件AndroidPermissions.我目前正在使用插件主页上建议的方法https://ionicframework.com/docs/native/uid/
这是获取设备MAC地址的代码:
async getMAC() {
const { hasPermission } = await this.androidPermissions.checkPermission(
this.androidPermissions.PERMISSION.READ_PHONE_STATE
);
if (!hasPermission) {
const result = await this.androidPermissions.requestPermission(
this.androidPermissions.PERMISSION.READ_PHONE_STATE
);
if (!result.hasPermission) {
throw new Error('Permissions required');
}
return;
}
return this.uidNative.MAC;
}
Run Code Online (Sandbox Code Playgroud)
我还READ_PHONE_STATE向我添加了权限,AndroidManifest.xml并为Ionic设置了相应的提供程序.我的手机正常请求许可.
我的问题
在请求许可后,上述Promise成功解决,但它返回null,我无法弄清楚为什么会发生这种情况
提前致谢
解决方案:
编写一个 cordova 插件以使用电话设置获取 MAC 地址
String mac = android.provider.Settings.Secure.getString(context.getContentResolver(), "bluetooth_address")
Run Code Online (Sandbox Code Playgroud)
然后通过 Ionic 3 调用此调用。
快速方法:更改https://ionicframework.com/docs/native/device/ Ionic Native 插件。
仅供参考,看看Device.java我们和我的一个朋友一起做的这个改变的要点:https ://gist.github.com/giannisdaras/04126edcae32d597cf54e7b2cae680ac
| 归档时间: |
|
| 查看次数: |
658 次 |
| 最近记录: |