从广播呼叫服务

时间:2016-10-12 21:04:48

标签: java android broadcastreceiver kontakt.io

你好我在kontak sdk有Beacon Scanner的服务,但我需要在用户打开和关闭蓝牙时从广播接收开始扫描 我的广播

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();
    }
}

}

清单服务

        <service android:name=".Beacons.BeaconService" ></service>

当用户打开蓝牙进入广播和工作但服务不要初始化..

1 个答案:

答案 0 :(得分:1)

这就是我从接收器开始服务的方式:

@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));
}

它完美无缺。