2016-10-12 3 views
0

Здравствуйте у меня есть сервис для Beacon Scanner в kontak SDK, но мне нужно начать сканирование с эфира получает, когда пользователь включение и выключение Bluetooth моих широковещательногообслуживание вызовов от Broadcast

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

}

Manifest услуги

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

Когда пользователь включения Bluetooth ввести в эфирном и работы, но сервис DonT INIT ..

+0

Возможный дубликат [Starting Service from BroadcastReceiver] (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)); 
} 

И это отлично работает.