SM-G970N(Galaxy S10e)中未调用BluetoothLeScanner

时间:2019-06-28 06:43:32

标签: android beacon bluetoothlescanner

我开发了一个包含ble功能的应用程序。这个应用程式在我的开发手机上运作良好。但是,当我在三星银河S10e上使用此应用程序时,蓝牙无法正常工作。而且我发现BluetoothLeScanner没有被调用。我的开发电话是星系S8,其版本是Android 9.0(Pie),API28。另外一个低版本的开发电话(如银河5,银河笔记4)也运行良好。

但是Galaxy S10e与Galaxy S8是相同的操作系统(Android 9.0 Pie,API 28)。我不知道为什么该应用程序在银河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);

我应该声明要在银河S10e上使用BluetoothLeScanner吗?有什么问题吗?

1 个答案:

答案 0 :(得分:0)

根据您的描述,扫描不会开始,因为mBluetoothAdapter.isEnabled()始终返回false。您可以验证情况吗?

如果上述情况成立,设备上的设置是否表示蓝牙已打开?如果是这样,能否使用LightBlueBeaconScope之类的现成应用程序检测BLE设备?