即使我使用Service退出应用程序,我仍在尝试扫描信标。 这是我的服务代码。
public class MyService extends Service {
private static final String TAG = "MyService";
BluetoothManager bluetoothManager;
BluetoothAdapter bluetoothAdapter;
BluetoothLeScanner bluetoothLeScanner;
public MyService() {
}
@Override
public void onCreate() {
super.onCreate();
Log.d(TAG, "onCreate called");
bluetoothManager = (BluetoothManager) getSystemService(Context.BLUETOOTH_SERVICE);
bluetoothAdapter =bluetoothAdapter.getDefaultAdapter();
bleCheck(bluetoothAdapter);
bluetoothLeScanner.startScan(mScanCallback);
}
@Override
public int onStartCommand(Intent intent, int flags, int startId) {
Log.d(TAG, "onStartCommand called");
if (intent == null)
return Service.START_STICKY;
else{
}
return super.onStartCommand(intent, flags, startId);
}
@Override
public void onDestroy() {
super.onDestroy();
Log.d(TAG, "onDestroy called");
}
这些是我授予应用程序的权限。我会发布所有权限,以防出现问题。
<uses-permission android:name="android.permission.READ_EXTERNAL_STORAGE" />
<uses-permission android:name="android.permission.WRITE_EXTERNAL_STORAGE" />
<uses-permission android:name="android.permission.ACCESS_COARSE_LOCATION" />
<uses-permission android:name="android.permission.ACCESS_FINE_LOCATION" />
<uses-permission android:name="android.permission.BLUETOOTH" />
<uses-permission android:name="android.permission.BLUETOOTH_ADMIN" />
<uses-permission android:name="android.permission.INTERNET" />
<uses-permission android:name="android.permission.WAKE_LOCK"/>
<uses-permission android:name="android.permission.FOREGROUND_SERVICE"/>
我使用了Wake_lock,但是当屏幕关闭时它会停止。我找不到原因。还有一个问题是,即使我的手机操作系统为Android 9.0,后台服务也不会停止。 在google文档中,我读到Android Oreo之后,它们严格限制了应用程序在后台运行,但我的应用程序仍在运行。 感谢您阅读我的问题。请帮忙:)