动态的广播实例化过滤器,并注册广播,定义Intent对象,注意action一定要一样:

设置广播接收者:

多次调试发现无法触发动态广播,log消息不显示,在查找资料以后以为是权限申请的问题,需要定位才可以实现,添加权限如下:
<uses-permission android:name="android.permission.ACCESS_COARSE_LOCATION"/> <uses-permission android:name="android.permission.ACCESS_FINE_LOCATION"/>
然后添加下面的动态申请代码:
if (Build.VERSION.SDK_INT >= 6.0) {
ActivityCompat.requestPermissions(this, new String[]{
Manifest.permission.ACCESS_FINE_LOCATION},
MY_PERMISSION_REQUEST_CONSTANT);
}
然后添加下面的代码:
public void onRequestPermissionsResult(int requestCode, String permissions[], int[] grantResults) {
switch (requestCode) {
case MY_PERMISSION_REQUEST_CONSTANT: {
// If request is cancelled, the result arrays are empty.
if (grantResults.length > 0 && grantResults[0] == PackageManager.PERMISSION_GRANTED) {
//permission granted!
}
return;
}
}
}
还是无法接受动态广播,在查找之后,修改了接受者的代码和注册的代码顺序,让接受者的代码在注册代码之前,终于成功解决。

蓝牙的动态广播做完,后面还有蓝牙的扫面显示和匹配连接,课设写的我好痛苦啊啊啊啊啊啊啊啊啊啊啊啊
本文讲述了作者在开发过程中遇到的挑战,包括动态广播实例化、位置权限请求、广播接受者设置顺序,以及蓝牙扫描与连接功能的实现。重点在于解决动态广播接受失败的问题,通过权限调整和接收者代码调整得以解决。
1747

被折叠的 条评论
为什么被折叠?



