在Activity中注册/注销Intent接收器的正确位置在哪里?通常我会把这样的东西放在这里:classMyActivity{privateBroadcastReceivermMyReceiver=newBroadcastReceiver(){@OverridepublicvoidonReceive(Contextcontext,Intentintent){Log.v(TAG,"Dosomething.");}};@OverridepublicvoidonResume(){super.onResume();registerReceiver(mMyReceiver,newIntentF
我正在开发需要发送SMS的android项目。我的应用程序通过使用网络服务收集所需信息,这些信息非常短且纯文本。然后以短信的形式发送这些信息。我使用过广播接收器,它会跟踪SMS是否成功发送,并简单地添加一个日志条目。我已经使用SmsManager来发送SMS。我的设备具有非常好的WiFi强度和良好的GPRS网络。在发送SMS时,我发现广播接收器插入日志条目,一些是“成功”,一些是“一般失败”。为什么很少有短信因为“GenericFailure”而失败?这背后的原因是什么?我用谷歌搜索了一下,发现有些人说要关闭WiFi。但是为了使用网络服务,我需要打开WiFi。任何人都可以对此提供一些见
Thisquestion提出了一个有趣的问题。OP有一个显示map的应用程序,该map需要使用通过SMS消息接收的位置标记进行更新。各个步骤非常简单:SMS消息可以由BroadcastReceiver接收,标记可以由ItemizedOverlay在MapView上显示>。棘手的部分是让接收部分与应用程序的主要部分通信。如果应用程序有一个Activity的MapActivity,然后它的BroadcastReceiver被调用作为对传入SMS的响应,会发生什么情况?MapActivity是否在同一进程中执行BroadcastReceiver代码时被挂起?如果是这样,BroadcastRe
我在Service上有一个动态注册的BroadcastReceiver。它获取AudioManager.RINGER_MODE_CHANGED_ACTION作为IntentFilter。每次启动服务时,我都会在onReceive()方法中收到日志消息。之后就可以正常工作了。我不希望它在每次启动服务时都收到一次。你能告诉我这里缺少什么吗?receiver=newBroadcastReceiver(){@OverridepublicvoidonReceive(Contextcontext,Intentintent){Log.d("zil","degisti");}};IntentFilte
我managed让我的耳机按钮在按下时被我的应用程序识别,但其中一个按钮需要调用MyCustomActivity中的方法。问题是onReceive的第一个参数是无法转换为Activity的上下文,因此我不得不将BroadcastReceiver实现为MyCustomActivity中的内部类。到目前为止一切顺利,但如何在list中注册这个内部MediaButtonEventReceiver?对于独立类来说,这很简单:对MyCustomActivity的mReceiver执行相同操作的技巧/语法是什么?privateBroadcastReceivermReceiver=newBroadc
我读了这篇文章:BroadcastreceiveronReceive()gettingcalledmultipletimes但我没有找到所需的答案。我创建了一个小实用函数,它覆盖了BroadcastReceiver的onReceive()并根据特定条件拒绝来电(效果很好)。现在,一旦所有条件都匹配并且我拒绝了调用,我想将该号码存储在数据库中(这又是一项简单的任务)。一旦我拒绝来电,我想将号码保存在数据库中。但是在日志中我观察到一旦有来电,onReceive函数就会被多次调用。如果是这种情况,我不想在我的数据库中有多个条目。有什么方法可以只调用一次onReceive()吗?或者任何解决方
我正尝试在充电状态发生变化时在特定Activity中显示警报。这是我的接收器类:publicclassBatteryChargeReceiverextendsBroadcastReceiver{privateStringTAG="receiver";privateChargeReceiverCallbackcallback;publicBatteryChargeReceiver(ChargeReceiverCallbackcallback){this.callback=callback;Log.v(TAG,"InsideConstructor(Callback)");}publicin
我想在BroadcastReceiver的OnReceive事件上向URL发送HTTPPOST请求,但出现异常NetworkOnMainThreadException,如何在OnReceive事件上运行线程。publicvoidonReceive(Contextcontext,Intentintent){finalBundlebundle=intent.getExtras();try{if(bundle!=null){finalObject[]pdusObj=(Object[])bundle.get("pdus");for(inti=0;isendhttprequest是调用httpp
我想在收到短信时toast。我尝试明确地将intent过滤器放在list中并且我部分成功了,除了我不想在应用程序被终止时调用它,所以在一些程序员的建议下,我尝试通过在我的用户界面中放置两个按钮以编程方式制作广播接收器,即register和unregister,因此它们的唯一目的是注册和注销广播接收器。我的主要目标是运行广播接收器,即使应用程序是后台(满足条件,用户按下注册并在使用另一个应用程序之后)。我一直在使用这个教程:http://www.javacodegeeks.com/2012/09/android-broadcast-receiver.html,但基本上用短信接收器修改了它
我尝试发送群发短信,效果很好。但是,我想知道哪些号码收到了我的短信发送状态:为了了解交付状态,我使用了以下代码:publicclassSMSdeliveredextendsBroadcastReceiver{@OverridepublicvoidonReceive(Contextcontext,Intentintent){//TODOAuto-generatedmethodstubswitch(getResultCode()){caseActivity.RESULT_OK:Toast.makeText(context,"SMSDELIVERED",Toast.LENGTH_SHORT)