我正在开发一个收集数据的表盘。 为了节省电池,我将数据存储到 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不做任何接收。
像往常一样,当我问一个问题的那一刻,我也解决了问题。 我不得不在 Android 中注册接收器,现在它可以工作了。 在onCreate
中添加了代码:
// register battery receiver
registerReceiver(batReceiver, new IntentFilter(BatteryManager.ACTION_CHARGING));
现在接收器很高兴地接收。