I show Bluetooth devices in a
ListView
Activity
ListView
Fragment
registerReceiver
unregisterReceiver
RESULT_CANCELED
protected void onResume() {
registerReceiver(receiver, filter);
filter = new IntentFilter(BluetoothAdapter.ACTION_DISCOVERY_STARTED);
registerReceiver(receiver, filter);
filter = new IntentFilter(BluetoothAdapter.ACTION_DISCOVERY_FINISHED);
registerReceiver(receiver, filter);
filter = new IntentFilter(BluetoothAdapter.ACTION_STATE_CHANGED);
registerReceiver(receiver, filter);
}
@Override
protected void onPause() {
// TODO Auto-generated method stub
super.onPause();
unregisterReceiver(receiver);
}
@Override
public void onActivityResult(int requestCode, int resultCode, Intent data) {
// TODO Auto-generated method stub
super.onActivityResult(requestCode, resultCode, data);
if(resultCode == RESULT_CANCELED){
Toast.makeText(getActivity() , "El Bluetooth debe estar activado para continuar", Toast.LENGTH_SHORT).show();
getActivity().finish();
}
}
registerReceiver
unegisterReceiver
if(resultCode==RESULT_CANCELED){
All these methods and variables belong to Activity
class. So consider calling them with context of parent Activity of Fragment.
You may call required methods as:
getActivity().registerReceiver(receiver, filter);
and
getActivity().unregisterReceiver(receiver);
if(resultCode==RESULT_CANCELED){
can be replaced with
if(resultCode == Activity.RESULT_CANCELED){
Hope this solve your problem.