#ads #altbeacon #bluetoothadapter
#реклама #altbeacon #блютутадаптер
Вопрос:
Ошибка получения на планшетах Asus, Samsung с версией ОС 4.4.2 Android Beacon Library version.
Проблема ниже.
Я попытался обновить библиотеку, обработав сбой, но все еще смог увидеть ошибку ниже:-
java.lang.Ошибка метода nosuchmetoderror: android.bluetooth.BluetoothAdapter.getbluetootheadvertiser в org.altbeacon.beacon.g.(неизвестный источник) в com.mangomirror.app.activity.a.b(неизвестный источник) в com.mangomirror.app.activity.HomeActivity $ 2.a (неизвестный источник) в d.g $ a $ 1 $ 1.запустить (неизвестный источник) в android.os.Handler.handleCallback(Handler.java: 733) в android.os.Handler.DispatchMessage(Handler.java:95) в android.os.Looper.loop(Looper.java: 136) в android.app.ActivityThread.main(ActivityThread.java:5001) в java.lang.reflect.Метод.вызывающий (собственный метод) в java.lang.reflect.Метод.invoke(метод.java:515) в com.android.internal.os.ZygoteInit$MethodAndArgsCaller.run(ZygoteInit.java:785) в com.android.internal.os.ZygoteInit.main(ZygoteInit.java:601) в dalvik.system.NativeStart.main(роднойМетод)
Ниже приведен мой код:-
public void broadcastAsBeacon(int major, int minor) {
Beacon beacon = new Beacon.Builder()
.setId1("2f234454-cf6d-4a0f-adf2-f4911ba9ffa6")
.setId2(String.valueOf(major))
.setId3(String.valueOf(minor))
.setManufacturer(0x004C)
.setTxPower(txPower)
.setRssi(-89)
.setDataFields(Arrays.asList(new Long[]{0l}))
.build();
BeaconParser beaconParser = new BeaconParser()
.setBeaconLayout("m:2-3=0215,i:4-19,i:20-21,i:22-23,p:24-24");//
try {
beaconTransmitter = new BeaconTransmitter(this, beaconParser);
}catch(Exception e){
Log.i("TAG", String.valueOf(e));
}
if (beaconTransmitter!=null) {
beaconTransmitter.startAdvertising(beacon, new AdvertiseCallback() {
@Override
public void onStartFailure(int errorCode) {
Log.e("Class", "Advertisement start failed with code: " errorCode);
}
@Override
public void onStartSuccess(AdvertiseSettings settingsInEffect) {
Log.i("class", "Advertisement start succeeded." settingsInEffect.getTxPowerLevel());
Log.i("class", "Advertisement start succeeded." settingsInEffect);
}
});
}
}
private boolean isBleEnabled() {
BluetoothAdapter bluetoothAdapter = BluetoothAdapter.getDefaultAdapter();
if (bluetoothAdapter == null) {
// Device does not support Bluetooth
} else {
if (bluetoothAdapter!=null) {
if (!bluetoothAdapter.isEnabled()) {
Intent enableBtIntent = new Intent(ACTION_REQUEST_ENABLE);
startActivityForResult(enableBtIntent, REQUEST_ENABLE_BLE);
return false;
}
}
}
return true;
}
Ответ №1:
Передача поддерживается только на Android 5.0 . Согласно документации библиотеки, вы должны сначала проверить, поддерживается ли передача, вызвав
int result = BeaconTransmitter.checkTransmissionSupported(context);
Если устройство поддерживает передачу, метод возвращает BeaconTransmitter.ПОДДЕРЖИВАЕТСЯ. Он также может вернуть:
NOT_SUPPORTED_MIN_SDK
NOT_SUPPORTED_BLE
NOT_SUPPORTED_MULTIPLE_ADVERTISEMENTS (deprecated)
NOT_SUPPORTED_CANNOT_GET_ADVERTISER_MULTIPLE_ADVERTISEMENTS
NOT_SUPPORTED_CANNOT_GET_ADVERTISER