我需要检查我的注册接收者是否仍然注册,如果不是我如何检查任何方法?
我只是尝试这个小样本项目,它所做的一切:活动一有一个button,发送广播。 活动二收到时显示敬酒。 下面是代码,广播从来没有收到。 我做错了什么? 发送广播 public class SendBroadcast extends Activity { public static String BROADCAST_ACTION = "com.unitedcoders.android.broadcasttest.SHOWTOAST"; /** Called when the activity is first created. */ @Override public void onCreate(Bundle savedInstanceState) { super.onCreate(savedInstanceState); setContentView(R.layout.main); } public void sendBroadcast(View v){ Intent broadcast = new Intent(); broadcast.setAction(BROADCAST_ACTION); sendBroadcast(broadcast); } } 接收它 public class ToastDisplay extends Activity { […]
我希望能够做一些事情,当SIM卡状态改变,即播放声音时,需要SIM卡PIN,但我认为没有广播事件,可以拦截广播接收器为此…注册android.intent.action .PHONE_STATE只会告诉你什么时候CALL-STATE改变了。另一种方法是启动一个注册PhoneStateListener的服务,并在LISTEN_SERVICE_STATE时作出反应(当状态是Out-of-state时,它可以获得SIM状态,并查看状态是否为SIM_STATE_PIN_REQUIRED)。 所以,我的问题是: 1)是否有任何广播意图可用于拦截SIM状态更改或服务状态更改? 2)在PhoneStateListener接收到电话状态变化的通知后,在服务中安装PhoneStateListener并使用它传递意图给服务本身是一个坏主意?
我需要让应用程序启动后,广播接收器始终运行。 这是在应用程序中注册该接收器的代码 IntentFilter filter = new IntentFilter(Intent.ACTION_SCREEN_ON); filter.addAction(Intent.ACTION_SCREEN_OFF); BroadcastReceiver mReceiver = new ScreenEventsReceiver(); registerReceiver(mReceiver, filter); 和接收器的代码 public class ScreenEventsReceiver extends BroadcastReceiver { public static boolean wasScreenOn = true; @Override public void onReceive(Context context, Intent intent) { if (intent.getAction().equals(Intent.ACTION_SCREEN_OFF)) { wasScreenOn = false; Log.d("ScreenEventReceiver", "ON"); } else if (intent.getAction().equals(Intent.ACTION_SCREEN_ON)) { wasScreenOn = true; Log.d("ScreenEventReceiver", "ON"); } […]
AlertDialog从BroadcastReceiver内? 可以这样做吗? 我正在开发一个应用程序,如果我收到短信,就会popup一个对话框。 我正在尝试在BroadcaseReceiver中对其进行编码。 但我不能使用这行代码AlertDialog.Builder builder = new AlertDialog.Builder(this); 。 有人可以帮助我一个提示! public class SMSPopUpReceiver extends BroadcastReceiver { private static final String LOG_TAG = "SMSReceiver"; public static final int NOTIFICATION_ID_RECEIVED = 0x1221; static final String ACTION = "android.provider.Telephony.SMS_RECEIVED"; public void onReceive(Context context, Intent intent) { Log.i(LOG_TAG, "onReceive"); if (intent.getAction().equals(SMSPopUpReceiver.ACTION)) { StringBuilder sb = new StringBuilder(); Bundle […]
我的应用程序使用BroadcastReceiver以这种方式获取短信: SmsBR.java public class SmsBR extends BroadcastReceiver { @Override public void onReceive(Context context, Intent intent) { Bundle bundle = intent.getExtras(); if (bundle != null) { Object[] pdus = (Object[])bundle.get("pdus"); final SmsMessage[] messages = new SmsMessage[pdus.length]; for (int i = 0; i < pdus.length; i++) { messages[i] = SmsMessage.createFromPdu((byte[])pdus[i]); } if (messages.length > 0) //doSomething(); } […]
如何在Android中有来电时获取电话号码?
我是新来的android。 我想在广播接收机中获取GPS位置,但是显示错误。 我的代码是: public void onReceive(Context context, Intent intent) { LocationManager locManager = (LocationManager) getSystemService(Context.LOCATION_SERVICE); // errors in getSystemService method LocationListener locListener = new MyLocationListener(); locManager.requestLocationUpdates(LocationManager.GPS_PROVIDER, 0, 0, locListener); Location loc = locManager .getLastKnownLocation(LocationManager.GPS_PROVIDER); Log.d(" **location**", " location" + loc.getLatitude()); } 问题: 广播接收机可以获取GPS位置数据吗? 另一种我迄今试过的方法是使用广播接收机调用的服务。 该服务可以获得GPS数据,但我怎样才能得到它在广播接收机?
我需要一些帮助来了解什么时候我可以期待我的广播接收机在刚刚在清单中注册的时候工作,而不必从正在运行的活动或服务注册。 因此,例如,如果我注册一个独立的接收器与以下意图filter它的作品没有一个服务/活动引用: <?xml version="1.0" encoding="utf-8"?> <manifest xmlns:android="http://schemas.android.com/apk/res/android" package="com.blk_burn.standalonereceiver" android:versionCode="1" android:versionName="1.0" > <uses-sdk android:minSdkVersion="10" /> <uses-permission android:name="android.permission.WAKE_LOCK"/> <application android:icon="@drawable/ic_launcher" android:label="@string/app_name" > <receiver android:name="TestReceiver"> <intent-filter> <action android:name="android.media.AUDIO_BECOMING_NOISY"/> </intent-filter> </receiver> </application> </manifest> 但是,如果我用android.media.AUDIO_BECOMING_NOISYreplaceandroid.media.AUDIO_BECOMING_NOISY接收器不会被触发( Android文档 ) 从我在这个网站上发现的,你必须注册这个接收器从一个已经运行的活动或服务( 邮政 )。 任何人都可以告诉我为什么这不起作用,当调整清单中的意图filter,为什么你需要有一个服务运行在后台引用/注册接收器? 有没有解决办法,以便我可以注册我的接收器在我的应用程序的清单使用intentfilterandroid.intent.action.HEADSET_PLUG ? 我怎么能从android文档中识别哪些广播操作需要服务或活动注册,而不是在清单中有正确的filter?
你好我正在写一个应用程序,这是当手机重新启动,服务将自动启动,而不是点击应用程序。 这是我的代码 BootCompleteReceiver.java package com.example.newbootservice; import android.content.BroadcastReceiver; import android.content.Context; import android.content.Intent; public class BootCompleteReceiver extends BroadcastReceiver { @Override public void onReceive(Context context, Intent intent) { Intent service = new Intent(context, MsgPushService.class); context.startService(service); } } MsgPushService.java package com.example.newbootservice; import android.app.Service; import android.content.Intent; import android.os.IBinder; import android.widget.Toast; public class MsgPushService extends Service { @Override public void onCreate() […]