您好,我在 kontak sdk 中有一个信标扫描仪服务,但是当用户打开和关闭蓝牙时,我需要从广播接收开始扫描 我的广播
public class Bluetooth_Reciver extends BroadcastReceiver {
private static final String TAG = "Bluetooth_Reciver";
@Override
public void onReceive(Context context, Intent intent) {
try {
final String action = intent.getAction();
if (action.equals(BluetoothAdapter.ACTION_STATE_CHANGED)) {
final int state = intent.getIntExtra(BluetoothAdapter.EXTRA_STATE,
BluetoothAdapter.ERROR);
switch (state) {
case BluetoothAdapter.STATE_TURNING_OFF:
Intent intent1 = new Intent();
intent1.setAction("com.mypackage.name.Beacons.BeaconService");
intent1.setPackage("com.mypackage.name.Beacons");
context.stopService(intent1);
break;
case BluetoothAdapter.STATE_ON:
Intent i = new Intent();
i.setAction("com.mypackage.name.Beacons.BeaconService");
i.setPackage("com.mypackage.name.Beacons");
context.startService(i);
break;
}
}
}catch (Exception e){
e.printStackTrace();
}
}
}
list 服务
<service android:name=".Beacons.BeaconService" ></service>
当用户打开蓝牙时进入广播并工作但服务未初始化..
最佳答案
这就是我从接收器启动服务的方式:
@Override
public void onReceive(Context context, Intent intent) {
// TODO: This method is called when the BroadcastReceiver is receiving
// an Intent broadcast.
context.startService(new Intent(context, MyService.class));
}
而且效果非常完美。
关于java - 通过广播调用服务,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/40008325/