1

我正在开发一个收集数据的表盘。为了节省电池,我将数据存储到 SQLite 数据库中。我想检测智能手表何时插入,以便将数据库从手表发送到手机。我已经成功实现了一个发送数据的服务。

我添加了一个广播接收器,如果插入了手表,它应该开始传输数据。编辑:它被添加为扩展类中的成员WearableListenerService

private BroadcastReceiver batReceiver = new BroadcastReceiver() {
    @Override
    public void onReceive(Context context, Intent intent) {
        Log.d(TAG, "TEST");
    }
};

我的问题是onReceive没有被调用。我已将意图过滤器添加到清单中:

<service android:name="si.ijs.maj.tictest.DBTService">

        <intent-filter>
            <!-- other stuff -->
        </intent-filter>

        <intent-filter>
            <action android:name="android.intent.action.ACTION_POWER_CONNECTED" />
            <action android:name="android.intent.action.ACTION_POWER_DISCONNECTED" />
        </intent-filter>
    </service>

tl; dr:我的问题是 BroadcastReceiver 不做任何接收。

4

1 回答 1

1

像往常一样,在我提出问题的那一刻,我也解决了这个问题。我必须在 Android 中注册接收器,现在它可以工作了。将代码添加到onCreate

// register battery receiver
registerReceiver(batReceiver, new IntentFilter(BatteryManager.ACTION_CHARGING));

现在接收者正在愉快地接收。

于 2018-06-18T15:25:23.567 回答