BluetoothLeScanner не вызывается в SM-G970N(Galaxy S10e)
Я разработал приложение, которое содержит функцию ble. И это приложение хорошо работало на моем телефоне. Но когда я использую это приложение на Samsung Galaxy S10e, Bluetooth не работает. И я нашел BluetoothLeScanner
не называется. Мой телефон для разработки - galaxy S8, и его версия - Android 9.0(Pie), API 28. И еще один телефон для разработки с низкой версией (например, galaxy 5, galaxy note 4) тоже работает хорошо.
Но galaxy S10e - это та же ОС, что и galaxy S8(Android 9.0 Pie, API 28). Интересно, почему приложение плохо работает на Galaxy S10e.
Я объявил, что разрешение так
<uses-permission android:name="android.permission.BLUETOOTH" />
<uses-permission android:name="android.permission.BLUETOOTH_ADMIN" />
<uses-permission android:name="android.permission.VIBRATE"/>
<uses-permission android:name="android.permission.ACCESS_COARSE_LOCATION"/>
<uses-permission android:name="android.permission.READ_PHONE_STATE" />
А также BluetoothLeScanenr
называется здесь.
@RequiresApi(api = Build.VERSION_CODES.LOLLIPOP)
public boolean BleDeviceScan(boolean enable)
{
logD(TAG, "BleDeviceScan ( " + enable + " )");
if(mBluetoothAdapter == null)
{
return false;
}
logD(TAG, "mBluetoothAdapter : " + mBluetoothAdapter.toString());
if(mBluetoothAdapter.isEnabled())
{
if (enable)
{
Log.d(TAG, "BleDeviceScan Build.VERSION.SDK_INT < MIN_SDK_INT - ELSE");
timerFlag = true;
timer = new Timer();
bleTimer();
mLEScanner.startScan(filters, settings, mScanCallback);
mListener.bleScanStart();
}
else
{
deviceShowCount = 0;
timerFlag = false;
bHandler.obtainMessage(1).sendToTarget();
mLEScanner.stopScan(mScanCallback);
mListener.bleScanStop();
}
logD(TAG, "BleDeviceScan Fin");
return true;
}
return false;
}
эта функция не называется в галактике S10e.
mLEScanner.startScan(filters, settings, mScanCallback);
Должен ли я объявить что-то, чтобы использовать BluetoothLeScanner
на галактике S10e? В чем проблема?
1 ответ
На основании вашего описания сканирование не начинается, потому что mBluetoothAdapter.isEnabled()
всегда возвращает ложь. Можете ли вы подтвердить, что это так?
Если вышеприведенное соответствует действительности, говорят ли настройки устройства, что Bluetooth включен? Если да, могут ли устройства BLE обнаруживаться с помощью готового приложения, такого как LightBlue или BeaconScope?