Получение MAC-адреса Bluetooth на Ionic 3 возвращает null
в настоящее время я разрабатываю приложение Ionic 3, где мне нужно получить MAC-адрес Bluetooth телефона (или что-то, что идентифицирует устройство внутри сети Bluetooth) на устройстве Android, и я пытаюсь получить MAC-адрес (или UUID и т. д.) с помощью Uid
родной плагин для Ionic, вместе с родным плагином для 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;
}
Я также добавил READ_PHONE_STATE
разрешение на мой AndroidManifest.xml
и настройка соответствующих поставщиков для Ionic. Обычно мой телефон запрашивает разрешение.
моя проблема
после запроса разрешения вышеуказанное обещание успешно разрешено, но оно возвращает null
и я не могу выяснить, почему это происходит
- есть ли обходной путь для этого? У кого-нибудь были похожие проблемы?
- есть ли другой способ получить MAC-адрес устройства android и передать его в ионное приложение?
спасибо заранее
1 ответов
устранение:
напишите плагин cordova, чтобы получить MAC-адрес, используя настройки телефона
String mac = android.provider.Settings.Secure.getString(context.getContentResolver(), "bluetooth_address")
затем вызовите этот вызов через Ionic 3.
быстрый способ сделать: изменить https://ionicframework.com/docs/native/device/ Ионный Родной Плагин.
FYI взгляните на это измененное Device.java
суть мы сделали с моим другом: https://gist.github.com/giannisdaras/04126edcae32d597cf54e7b2cae680ac