android error receiving broadcast intent,Error receiving broadcast Intent { act=android.blu

I searched and i didn't find anything symilar. I'm developing a connection between two defices using Bluetooth in Android. And on ACTION_FOUND method, when i tried to make the device information appear on listView, i got that error on logcat.

DesafioActivity:

public class DesafioActivity extends Activity {

private TextView nomeDispositivo;

private TextView MAC_Adress;

private BluetoothAdapter bthAdapter = BluetoothAdapter.getDefaultAdapter();

private ArrayAdapter bthDispositivosArea;

private ListView lv_devicesArea;

private IntentFilter filter;

private Button btn_servidor, btn_cliente;

@Override

public void onCreate(Bundle savedInstanceState) {

super.onCreate(savedInstanceState);

setContentView(R.layout.activity_desafio);

nomeDispositivo = (TextView)findViewById(id.tv_apresentaNomeDispositivo);

MAC_Adress = (TextView)findViewById(id.tv_apresentaMacAdress);

lv_devicesArea = (ListView)findViewById(id.lv_apresentaDispositivosDescobertos);

VerificarEstadoBth();

nomeDispositivo.setText(bthAdapter.getName());

MAC_Adress.setText(bthAdapter.getAddress());

//Regista o BroadcastReceiver

IntentFilter filter = new IntentFilter(BluetoothDevice.ACTION_FOUND);

filter.addAction(BluetoothDevice.ACTION_UUID);

filter.addAction(BluetoothAdapter.ACTION_DISCOVERY_STARTED);

filter.addAction(BluetoothAdapter.ACTION_DISCOVERY_FINISHED);

registerReceiver(HandleDiscovery, filter); // Don't forget to unregister during onDestroy

bthAdapter.startDiscovery();

}

public void VerificarEstadoBth(){

//Bluetooth não suportado

if (bthAdapter == null) {

Toast.makeText(this, "DEVIDE DOESN'T SUPPORT", Toast.LENGTH_LONG).show();

}

// Ativa e torna o dispositivo visível para conexão

if (!bthAdapter.isDiscovering()) {

Intent getVisible = new Intent(BluetoothAdapter.ACTION_REQUEST_DISCOVERABLE);

startActivityForResult(getVisible, 0);

Toast.makeText(getApplicationContext(),"AVAIABLE FOR CONNECTION" ,Toast.LENGTH_LONG).show();

}

else{

Toast.makeText(getApplicationContext(),"AVAIABLE FOR CONNECTION",Toast.LENGTH_SHORT).show();

}

}

private final BroadcastReceiver HandleDiscovery = new BroadcastReceiver(){

@Override

public void onReceive(Context context, Intent intent) {

String action = intent.getAction();

if(BluetoothDevice.ACTION_FOUND.equals(action)) {

BluetoothDevice device = intent.getParcelableExtra(BluetoothDevice.EXTRA_DEVICE);

Toast.makeText(getApplicationContext(),"DEVICE FOUND! " ,Toast.LENGTH_LONG).show();

bthDispositivosArea.add("\n Device: " + device.getName() + ", " + device);

lv_devicesArea.setAdapter(bthDispositivosArea);

} else {

if(BluetoothDevice.ACTION_UUID.equals(action)) {

BluetoothDevice device = intent.getParcelableExtra(BluetoothDevice.EXTRA_DEVICE);

Parcelable[] uuidExtra = intent.getParcelableArrayExtra(BluetoothDevice.EXTRA_UUID);

for (int i=0; i

//out.append("\n Device: " + device.getName() + ", " + device + ", Service: " + uuidExtra[i].toString());

}

} else {

if(BluetoothAdapter.ACTION_DISCOVERY_STARTED.equals(action)) {

Toast.makeText(getApplicationContext(),"START DISCOVERY!",Toast.LENGTH_SHORT).show();

}

}

}

}

};

@Override

public void onDestroy() {

unregisterReceiver(HandleDiscovery);

super.onDestroy();

}

}

LogCat:

12-30 16:33:24.657: E/AndroidRuntime(12794): FATAL EXCEPTION: main

12-30 16:33:24.657: E/AndroidRuntime(12794): Process: com.AMOV.mr.fit, PID: 12794

12-30 16:33:24.657: E/AndroidRuntime(12794): java.lang.RuntimeException: Error receiving broadcast Intent { act=android.bluetooth.device.action.FOUND flg=0x10 (has extras) } in com.AMOV.mr.fit.DesafioActivity$1@41a98b68

12-30 16:33:24.657: E/AndroidRuntime(12794): at android.app.LoadedApk$ReceiverDispatcher$Args.run(LoadedApk.java:776)

12-30 16:33:24.657: E/AndroidRuntime(12794): at android.os.Handler.handleCallback(Handler.java:733)

12-30 16:33:24.657: E/AndroidRuntime(12794): at android.os.Handler.dispatchMessage(Handler.java:95)

12-30 16:33:24.657: E/AndroidRuntime(12794): at android.os.Looper.loop(Looper.java:136)

12-30 16:33:24.657: E/AndroidRuntime(12794): at android.app.ActivityThread.main(ActivityThread.java:5146)

12-30 16:33:24.657: E/AndroidRuntime(12794): at java.lang.reflect.Method.invokeNative(Native Method)

12-30 16:33:24.657: E/AndroidRuntime(12794): at java.lang.reflect.Method.invoke(Method.java:515)

12-30 16:33:24.657: E/AndroidRuntime(12794): at com.android.internal.os.ZygoteInit$MethodAndArgsCaller.run(ZygoteInit.java:796)

12-30 16:33:24.657: E/AndroidRuntime(12794): at com.android.internal.os.ZygoteInit.main(ZygoteInit.java:612)

12-30 16:33:24.657: E/AndroidRuntime(12794): at dalvik.system.NativeStart.main(Native Method)

12-30 16:33:24.657: E/AndroidRuntime(12794): Caused by: java.lang.NullPointerException

12-30 16:33:24.657: E/AndroidRuntime(12794): at com.AMOV.mr.fit.DesafioActivity$1.onReceive(DesafioActivity.java:112)

12-30 16:33:24.657: E/AndroidRuntime(12794): at android.app.LoadedApk$ReceiverDispatcher$Args.run(LoadedApk.java:766)

12-30 16:33:24.657: E/AndroidRuntime(12794): ... 9 more

  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
java.lang.RuntimeException: error receiving broadcast intent 是Java编程语言中的一个异常,它通常在接收广播意图时出现。 这个异常可能会出现在Android开发中,在接收广播消息时发生错误。一般来说,这个异常是由于以下原因之一引起的: 1. 广播接收器的逻辑错误:如果广播接收器的代码逻辑有误,比如处理广播事件的方法中出现了错误,就会导致该异常的发生。解决这个问题需要检查广播接收器的代码,并确保其中没有逻辑错误。 2. 权限问题:如果广播接收器要接收某个特定的广播意图,并且没有正确声明相关的权限,就会导致该异常的发生。解决这个问题需要在AndroidManifest.xml文件中正确声明广播接收器的权限。 3. 广播意图的数据不匹配:如果广播意图的数据与接收器所期望的不匹配,就会导致该异常的发生。解决这个问题需要确保广播意图的数据与接收器所需的数据是一致的。 为了解决这个异常,可以参考以下步骤: 1. 检查广播接收器的代码逻辑,确保没有错误的代码。 2. 在AndroidManifest.xml文件中正确声明广播接收器的权限。 3. 检查广播意图的数据,确保与接收器的期望一致。 如果以上步骤都没有解决问题,可以尝试重新安装应用程序,并重新测试广播接收器的功能。如果问题仍然存在,可能需要进一步调试和排查代码,或者查找相关的开发文档和社区资源以获取更多的帮助。
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值