tommyrunner 2021-09-25 16:50 采纳率: 50%
浏览 14
已结题

原生Android的自启服务,无法启动传感器?

我再Service中实现了SensorEventListener接口,以onSensorChanged方法来监听传感器
软件的Service是需要自启动的,我在手机允许了软件的自启动
这时,当软件被划掉后台,软件会自动启动Service服务,但是注册SensorEventListener传感器失效

public class TestService extends Service implements SensorEventListener {
private SensorManager mSensorManager;

@Override
public IBinder onBind(Intent intent) {
    return null;
}


@Override
public void onDestroy() {
    super.onDestroy();
    Log.d(BaseData.TAG, "***** TestService*****: 关闭服务");
}


@Override
public void onCreate() {
    super.onCreate();
    Log.d(BaseData.TAG, "***** TestService*****: 启动服务");
    mSensorManager = (SensorManager) getSystemService(Context.SENSOR_SERVICE);
}

@Override
public int onStartCommand(Intent intent, int flags, int startId) {
    Log.d(BaseData.TAG, "***** TestService*****: onStartCommand");
    if (mSensorManager != null) {// 注册监听器
        mSensorManager.registerListener(this, mSensorManager.getDefaultSensor(Sensor.TYPE_ACCELEROMETER), SensorManager.SENSOR_DELAY_NORMAL);
    }
    return START_STICKY;
}

@Override
public void onSensorChanged(SensorEvent event) {
    Log.d(BaseData.TAG, "***** TestService*****: 监测");

// 监测逻辑-达到某值-toast
}
}

  • 写回答

0条回答 默认 最新

    报告相同问题?

    问题事件

    • 系统已结题 10月3日
    • 创建了问题 9月25日