在 Ionic 3 returns 上检索蓝牙 MAC 地址 null
Retrieving Bluetooth MAC Address on Ionic 3 returns null
我目前正在开发一个 Ionic 3 应用程序,我需要在 Android 设备,我一直在尝试使用 Ionic 的 Uid
本机插件以及 AndroidPermissions
的本机插件来获取 MAC 地址(或 UUID 等)。我目前正在使用插件主页上建议的方法 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;
}
我还向我的 AndroidManifest.xml
添加了 READ_PHONE_STATE
权限,并为 Ionic 设置了相应的提供程序。我的 phone 请求权限正常。
我的问题
请求许可后,上述 Promise 已成功解决,但它 returns null
我无法弄清楚为什么会发生这种情况
- 有什么解决方法吗?有人遇到过类似的问题吗?
- 是否有其他方法获取 android 设备的 MAC 地址并将其传递给 Ionic 应用程序?
提前致谢
解决方案:
使用 Phone 设置
编写一个 cordova 插件来获取 MAC 地址
String mac = android.provider.Settings.Secure.getString(context.getContentResolver(), "bluetooth_address")
然后通过 Ionic 3 调用此调用。
一种快速的方法:更改 https://ionicframework.com/docs/native/device/ Ionic Native 插件。
仅供参考,我看一下我们和我的一个朋友一起做的这个改变的 Device.java
要点:https://gist.github.com/giannisdaras/04126edcae32d597cf54e7b2cae680ac
我目前正在开发一个 Ionic 3 应用程序,我需要在 Android 设备,我一直在尝试使用 Ionic 的 Uid
本机插件以及 AndroidPermissions
的本机插件来获取 MAC 地址(或 UUID 等)。我目前正在使用插件主页上建议的方法 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;
}
我还向我的 AndroidManifest.xml
添加了 READ_PHONE_STATE
权限,并为 Ionic 设置了相应的提供程序。我的 phone 请求权限正常。
我的问题
请求许可后,上述 Promise 已成功解决,但它 returns null
我无法弄清楚为什么会发生这种情况
- 有什么解决方法吗?有人遇到过类似的问题吗?
- 是否有其他方法获取 android 设备的 MAC 地址并将其传递给 Ionic 应用程序?
提前致谢
解决方案:
使用 Phone 设置
编写一个 cordova 插件来获取 MAC 地址String mac = android.provider.Settings.Secure.getString(context.getContentResolver(), "bluetooth_address")
然后通过 Ionic 3 调用此调用。
一种快速的方法:更改 https://ionicframework.com/docs/native/device/ Ionic Native 插件。
仅供参考,我看一下我们和我的一个朋友一起做的这个改变的 Device.java
要点:https://gist.github.com/giannisdaras/04126edcae32d597cf54e7b2cae680ac