BluetoothLeScanner не вызывается в SM-G970N (Galaxy S10e) - PullRequest
0 голосов
/ 28 июня 2019

Я разработал приложение, которое содержит функцию 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 на galaxy S10e? В чем проблема?

1 Ответ

0 голосов
/ 28 июня 2019

На основании вашего описания сканирование не начинается, потому что mBluetoothAdapter.isEnabled() всегда возвращает false. Можете ли вы подтвердить, что это так?

Если приведенное выше верно, в настройках устройства указано, что Bluetooth включен? Если это так, можно обнаружить устройства BLE с готовым приложением, таким как LightBlue или BeaconScope ?

...