我开发了一个包含 ble 功能的应用程序。这个应用程序在我的开发手机上运行良好。但是当我在三星 Galaxy S10e 上使用这个应用程序时,蓝牙无法正常工作。而且我发现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;
}
Galaxy S10e 中不调用此函数。
mLEScanner.startScan(filters, settings, mScanCallback);
BluetoothLeScanner
我应该在 Galaxy S10e 上声明要使用的东西吗?问题是什么?