Articles of broadcastreceiver

adb shell的BroadcastReceiver权限

考虑使用BroadcastReceiver实现简单目标的简单工具。 因为其他应用程序不应该使用它,所以它使用signature或signatureOrSystem定义权限: 现在我想通过发送广播来测试这个 adb shell am broadcast -n any.test/.Receiver 从我的电脑。 虽然这在模拟器上完全正常,但在设置此权限时,它在真实设备上根本不起作用。 如果未设置权限,则一切都按预期工作。 那么如何定义或授予权限以便我可以在具有ADB的真实设备上测试所有这些? 我想在调试模式下使这个导出的接收器更安全,所以如果有一个特殊的ADB使用权限或运行时测试只允许来自ADB调用我可以在Receiver.onReceive(Context, Intent)中实现它,也会有所帮助。 接收方不必同时为ADB和其他应用程序工作。

如何调试BOOT_COMPLETE广播接收器的“Force Close”崩溃?

由于手机重启并因此在启动时与Eclipse调试器/ LogCat断开连接,如何查看启动完整广播接收器崩溃的位置? 我正在我的公共类的onReceive()中执行一些操作BootCompleteReceiver扩展BroadcastReceiver {…} 当手机启动时,这会崩溃并popup一个强制关闭对话框。 如何调试此问题并查看问题所在? 调试任何BOOT_COMPLETE广播接收器的问题都适用。 谢谢! 编辑 是的,我们可以看到系统登录LogCat,因为手机正在启动,但是我的应用程序Log.d(TAG,“Boot completed”)必须等到它(onReceive)被触发,但到那时应用程序崩溃了,因为问题在接收器本身的某个地方。 应用程序在我可以记录任何内容之前崩溃。 另外,对于重启的手机,我无法使用“在调试模式下运行”…

短信广播接收器重启后无法正常工作

我正在尝试从短信中获取电话号码和电话簿名称。 当我从应用程序运行它并关闭应用程序时,它可以工作,但是,当我重新启动我的手机时,它不起作用。 任何人? public class IncomingSMSReceiver extends BroadcastReceiver { private static final String queryString = “@zovi”; private static final String SMS_RECEIVED = “android.provider.Telephony.SMS_RECEIVED”; public void onReceive(Context _context, Intent _intent) { if (_intent.getAction().equals(SMS_RECEIVED)) { Intent intent = new Intent(_context, IncomingSMSService.class); _context.startService(intent); Bundle bundle = _intent.getExtras(); if (bundle != null) { Object[] pdus = (Object[]) bundle.get(“pdus”); SmsMessage[] […]

如何从来电获取电话号码?

在Android中有来电时如何获取电话号码?

PubNub的Android服务

我已经实现了PubNub订阅和发布代码。 我的代码在活动上运行良好。 但现在我想在服务类的帮助下在后台执行该代码。 我创建了扩展IntentService类。 我正在订阅onCreate方法中的pubnub通道。 但每当我运行应用程序服务时,会立即停止而不显示pubnub状态。 我正在关注pubnub错误。 我也链接了pubnub所需的库。 04-09 23:39:32.621: D/Service Message(10033): error[Error: 100-1] : Timeout Occurred MainActivity.java public class MainActivity extends Activity { @Override protected void onCreate(Bundle savedInstanceState) { super.onCreate(savedInstanceState); setContentView(R.layout.activity_main); } public void startService(View v){ startService(new Intent(this, MyService.class)); } public void stopService(View v){ stopService(new Intent(this, MyService.class)); } } PubnubHandler.java public class PubnubHandler{ public […]

Android:检查联系人列表中的电话号码? (从电话中检索电话号码)

我制作一个BroadcastReceiver来接收给我打电话的人的电话号码 如何检查电话号码是否在我的联系人列表中? 您是否有提示要知道这个电话号码是否存在于联系人列表中且没有加载联系人列表? 我不想要更多信息,只要这个电话号码存在。 如果不可能,我必须加载联系人列表,如何在BroadcastReceiver上执行此操作? 当我尝试执行getContentResolver ,它不起作用,因为我在BroadcastReceiver而不在Activity … 谢谢你的帮助

如何保持我的BroadcastReceiver

目前我正在开发像Truecaller这样的呼叫拦截器应用程序。 我需要什么 即使我的应用程序已从最近的应用程序列表中删除,我也想检测来电。 Manifest.xml代码 我的广播接收器代码 @Override public void onReceive(Context context, Intent intent) { //my call blocking code } 我的问题 我的BroadcastReceiver不会在后台工作,就像我从最近的应用列表中删除一样。 我的完整清单代码在这里 我应该使用服务还是其他什么? 更新: 有了Suraj的回答,我在接收器中尝试了这个标签 android:enabled=”true” android:exported=”true” android:process=”:anotherProcess” 它适用于kitkat .. 但不适用于棒棒糖.. 更新的问题: Incase如果不能保持活动广播接收器即使我的应用程序关闭,我如何检测来电? 任何人给出详细答案..

如何通过PendingIntent发送数据到广播?

我正在尝试通过PendingIntent发送一些额外的数据,例如: MyMessage message; //… Intent intent; SmsManager sms = SmsManager.getDefault(); intent = new Intent(Constants.SENT_PLAIN); intent.putExtra(Constants.EXTRA_RAW_ID, message.getId()); //putting long id (not -1L) PendingIntent sentPI = PendingIntent.getBroadcast(activity, 0, intent, 0); intent = new Intent(Constants.DELIVERED_PLAIN); intent.putExtra(Constants.EXTRA_RAW_ID, message.getId()); PendingIntent deliveredPI = PendingIntent.getBroadcast(activity, 0, intent, 0); sms.sendTextMessage(phoneNumber, null, message.getBody(), sentPI, deliveredPI); 然后在Broadcast尝试捕获数据: @Override public void onReceive(Context context, Intent intent) { […]

为什么某些广播接收器只能通过Code或AndroidManifest注册

某些广播接收器仅在通过代码注册而不是在AndroidManifest中定义时才起作用。 例如: SCREEN_ON, SCREEN_OFF 这些操作仅适用于在代码中注册的接收器。 如果它们在清单中注册,则不会发生错误,但它们也不会被调用。 这种无证行为的原因是什么? 安全?

从服务到活动的Android广播

我正在尝试从服务发送广播到活动。 我可以validation广播是从服务中发送的,但是活动不会发送任何内容。 这是相关的服务代码: Intent i = new Intent(NEW_MESSAGE); i.putExtra(FriendInfo.USERNAME, StringUtils.parseBareAddress(message.getFrom())); i.putExtra(FriendInfo.MESSAGE, message.getBody()); i.putExtra(“who”, “1”); sendBroadcast(i); 并且活动类中的接收端: public class newMessage extends BroadcastReceiver { @Override public void onReceive(Context context, Intent intent) { String action = intent.getAction(); if(action.equalsIgnoreCase(IMService.NEW_MESSAGE)){ Bundle extra = intent.getExtras(); String username = extra.getString(FriendInfo.USERNAME); String message = extra.getString(FriendInfo.MESSAGE); String who = extra.getString(“who”); } } } BroadcastReceiver在Activity中定义。 […]