Articles of broadcastreceiver

BroadcastReceiver不接收广播

我的BroadcastReceiver没有收到任何东西。 很可能是我的设置错了,因为我无法在此find任何好的例子。 我需要我的接收器在我的MainActivity中接收一些东西,并更改一个视图。 我在Android项目中有几乎相同的代码,并且它在这里工作,但是在Xamarin中,BroadcastReceivers似乎实现了一点点不同(在Android中,我可以使新的BroadcastReceiver几乎像一个对象,但在Xamarin或C#中,似乎我必须创建自己的类,因此没有相同的可能性来直接引用视图)。 如果我让这个工作,我也会为每个人发布一个完整的工作示例。 以下是我尝试设置的方法: [Activity(Label = “GetLocation.Droid”, MainLauncher = true, Icon = “@drawable/icon”)] public class MainActivity : Activity { Button button; protected override void OnCreate(Bundle bundle) { // … various OnCreate() code LocationBroadcastReciever lbr = new LocationBroadcastReciever(); RegisterReceiver(lbr, new IntentFilter(“test”)); } public void SetButtonText(string text) { button.Text = text; } } [BroadcastReceiver] public […]

在相同片段的不同实例之间进行通信

问题如下。 让我们有3个带片段的标签: 标签1(片段A)。 需要将数据发送到选项卡2。 表2(片段B)。 需要从选项卡1接收数据。 表3(片段B)。 已经包含数据。 如您所见,选项卡3和选项卡2包含相同的片段但不同的实例。 如何将数据(不是通过参数)发送到Tab 2? 我尝试过的: 片段B在创建时通过参数设置唯一ID。 为片段B的两个实例注册相同的Local Broadcast Receiver 使用ID将数据从片段A发送到片段B. 在Fragment B onReceive()检查接收的ID是否等于Fragment的ID 但不幸的是,广播仅被发送到Tab 3。 编辑:更多信息。 这些选项卡使用ViewPager托管在另一个片段中。 这是由于NavigationDrawer组合,其中包含与ViewPager片段和提到的Tabs。

Android usb枚举

我正在写一个Android USB主机应用程序,我试图枚举与平板电脑连接的设备。 我按照开发人员站点中的android USB主机文档中的代码进行操作。 我的代码如下 AndroidUSBActivity public class AndroidUSBActivity extends Activity { /** Called when the activity is first created. */ @Override public void onCreate(Bundle savedInstanceState) { super.onCreate(savedInstanceState); setContentView(R.layout.main); USBClass usb = new USBClass(); ArrayList deviceList = usb.GetUSBDevices(getBaseContext()); final CharSequence[] items = deviceList.toArray(new CharSequence[deviceList.size()]); AlertDialog.Builder builder = new AlertDialog.Builder(this); builder.setTitle(“Select a Reader”); builder.setSingleChoiceItems(items, -1, new […]

创建BroadcastReceiver,在安装/卸载任何应用程序时显示应用程序名称和版本号?

创建BroadcastReceiver,在安装/卸载任何应用程序时显示应用程序名称和版本号。 但我通过intent.getData()获取包名。 但是当我试图使用packagemanagerfind该应用程序的名称时,它会在所有安装/卸载/替换的情况下抛出exception。 可能存在的问题是什么?如何解决这个问题? 码: import android.content.BroadcastReceiver; import android.content.Context; import android.content.Intent; import android.content.pm.ApplicationInfo; import android.content.pm.PackageManager; import android.widget.Toast; public class ApplicationStatusNotification extends BroadcastReceiver { /** * This method receives message for any application status(Install/ Uninstall) and display details. */ @Override public void onReceive(Context context, Intent intent) { // Get application status(Install/ Uninstall) boolean applicationStatus = intent.getBooleanExtra(Intent.EXTRA_REPLACING, […]

预定的警报管理器无法运行Android

我正在尝试启动一个在特定时间每天重复的警报服务。 我已经经历了关于堆栈溢出的很multithreading,但没有运气。 我按照了几个教程: http : //karanbalkar.com/2013/07/tutorial-41-using-alarmmanager-and-broadcastreceiver-in-android/和http://javatechig.com/android/repeat-alarm-example -in-机器人 我的服务从未开始,我不明白为什么。 以下是我的代码: 我的清单文件: 我的接收器类: public class MyReceiver extends BroadcastReceiver { @Override public void onReceive(Context rcontext, Intent intent) { Log.e(“Main Activity”, “inside on receive of myreceiver”); Intent service1 = new Intent(rcontext, DownloadService.class); rcontext.startService(service1); } } 我的服务类: public class DownloadService extends Service { @Override public void onCreate() { // TODO […]

Boot / ScreenOn广播接收器无法正常工作

我有一个空白的HelloWorld应用程序: package tutorials.TestReceivers; import android.app.Activity; import android.os.Bundle; public class TestReceiversActivity extends Activity { /** Called when the activity is first created. */ @Override public void onCreate(Bundle savedInstanceState) { super.onCreate(savedInstanceState); setContentView(R.layout.main); } } 使用此BootReceiver.Java: package tutorials.TestReceivers; import android.content.BroadcastReceiver; public class BootReceiver extends BroadcastReceiver { public void onReceive(Context context, Intent arg1) { Intent intent = new Intent(context, […]

android在活动和广播接收器之间进行通信

我有一个活动,显示从服务器获取的一些数据。 如果没有可用的连接,活动将显示一些缓存数据; 如果连接可用,则活动将获取数据并显示它。 这一切都按预期工作。 现在,我想让我的活动在连接发生后立即重新加载数据。 我正在使用扩展BroadcastReceiver的简单Receiver: public class ConnectionChangeReceiver extends BroadcastReceiver { @Override public void onReceive(Context context, Intent intent) { ConnectivityManager connectivityManager = (ConnectivityManager) context .getSystemService(Context.CONNECTIVITY_SERVICE); NetworkInfo activeNetInfo = connectivityManager.getActiveNetworkInfo(); if (activeNetInfo != null) { //what to do here? } } } 广播接收器在我的清单文件中声明如下: 在我的活动中,我注册了接收器: ConnectionChangeReceiver receiver = new ConnectionChangeReceiver(); this.registerReceiver(接收者,新的IntentFilter(ConnectivityManager.CONNECTIVITY_ACTION)); 现在,我很困惑,接下来要做什么。 当执行onReceive方法时,如何让我的活动意识到这一点? 我知道我可以开始一项新活动,但那不是我想要的。 我应该将ConnectionChangeReceiver声明为我的活动的私有类吗? 或者还有其他解决方案吗?

飞机模式关闭/打开后,广播接收器在onReceive()上接收的时间太长

我已经创建了一个简单的广播接收器,它工作得很好,除非我打开/关闭空中飞机模式,使用onReceive方法接收广播消息需要将近2分钟。 另一件事是,如果我们启动应用程序然后如果我更改Air plane Mode(开/关),则会导致问题,然后接收消息需要很长时间。 如果在启动应用程序之前有模式更改,则不会影响在onReceive方法中接收消息的时间。 源代码如下。 AndroidManifest.xml中 BroadcastReceiverActivity.java public class BroadcastReceiverActivity extends Activity { public static String qrCodeReceiver = “test.intent.action.QR_CODE_RECEIVER”; @Override protected void onCreate(Bundle saveInstanceState){ super.onCreate(savedInstanceState); setContentView(R.layout.main); Button broadcastBtn = (Button) findViewById(R.id.broadcastBtn); broadcastBtn.setOnClickListener(new View.onClickListener(){ public void onClick(View v){ //TODO Intent intent = new Intent(); intent.putExtra(“message”,”Testing”); intent.setAction(qrCodeReceiver); sendBroadcast(intent); Log.d(“Test”,”sendBroadcasting the message ::”); } }); } } […]

使用localbroadcastmanager sendorderedbroadcast的组合发送广播

我想在这篇博客文章中实现CommonsWare所描述的内容: http : //commonsware.com/blog/2010/08/11/activity-notification-ordered-broadcast.html 。 这篇文章很有意义,我可以在这里浏览示例源代码: https : //github.com/commonsguy/cw-advandroid/tree/master/Broadcast 。 我很好奇的是调用LocalBroadcastManager.getInstance(UnzipService.this).sendBroadcast(broadcast); 服务内部仍将由您在清单中定义的types的广播接收器接收。 如果我要问的不清楚,我想要做的是使用LocalBroadcastManager,因为我的服务广播不一定需要在系统范围内看到,如果可能的话我宁愿保密。但是如果用户关闭我的应用并且服务仍在运行,我也想显示通知。 有没有办法结合这两种function而不在服务内部发送两次广播? (我不想要做的)像: LocalBroadcastManager.getInstance(UnzipService.this).sendBroadcast(broadcast); sendOrderedBroadcast(broadcast); LocalBroadcastManager.getInstance(UnzipService.this).sendBroadcast(broadcast); sendOrderedBroadcast(broadcast);

C2DMBroadcastReceiver的onReceive未执行(For Registration)

我正在开发C2DM消息应用程序。 在那,我命令使用C2DMBroadcastReceiver , C2DMBaseReceiver和C2DMMessaging类接收注册ID。 我将在我的包中使用C2DMBaseReceiver扩展C2DMBaseReceiver 。 这是我的代码片段 C2DMMessaging.java package com.google.android.c2dm; import android.app.PendingIntent; import android.content.Context; import android.content.Intent; import android.content.SharedPreferences; import android.content.SharedPreferences.Editor; import android.util.Log; public class C2DMessaging { public static final String EXTRA_SENDER = “sender”; public static final String EXTRA_APPLICATION_PENDING_INTENT = “app”; public static final String REQUEST_UNREGISTRATION_INTENT = “com.google.android.c2dm.intent.UNREGISTER”; public static final String REQUEST_REGISTRATION_INTENT = “com.google.android.c2dm.intent.REGISTER”; public […]