放送

2016-10-12 20 views
0

からサービスコールこんにちは、私はkontak SDKのビーコンスキャナにサービスを持っていますが、私は、放送からスキャンを始める必要があるユーザーがオン時に受け取るとBluetoothオフ 私の放送放送

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> 

のBluetoothをオンにするユーザーは、放送との仕事が、サービスに入るのinitいけない

..

+0

[BroadcastReceiverからのStarting Service]の可能な複製(http://stackoverflow.com/questions/4641712/starting-service-from-broadcastreceiver) –

答えて

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

そして、それは完璧に動作します。