2016-08-21 3 views
-1
//here my code 
//used this IntentFilter 

IntentFilter filter = new IntentFilter(); 

filter.addAction(BluetoothAdapter.ACTION_STATE_CHANGED); 
filter.addAction(BluetoothDevice.ACTION_FOUND); 
filter.addAction(BluetoothAdapter.ACTION_DISCOVERY_STARTED); 
filter.addAction(BluetoothAdapter.ACTION_DISCOVERY_FINISHED); 

//this method cannot be resolve 

registerReceiver(mReceiver, filter); 

Antwort

4

Sie können tun, dass in Fragment beheben:

getActivity().registerReceiver(receiver, filter); 
1

registerReceiver das Verfahren in Context Klasse gefunden ist. Fragment erweitert es nicht, aber die Activity tut. Deshalb sollten Sie es wie folgt verwenden können:

registerReceiver.(receiver, filter); 

In der Aktivität, aber Sie müssen es auf einem Kontext aus dem Fragment entweder wie folgt aufrufen:

getActivity().registerReceiver(receiver, filter); 

Oder noch besser in onAttach

@Override 
public void onAttach(Context context) { 
     context.registerReceiver(receiver, filter); 
} 
Verwandte Themen