Tag: broadcastreceiver

Android广播接收器不工作

我试图让我的应用程序在打开屏幕时打印一些东西,但它不能像我预期的那样工作。 这是我在Manifest文件中的内容 我的接收器看起来像 public class PhoneBroadcastReceiver extends BroadcastReceiver { public PhoneBroadcastReceiver() { } @Override public void onReceive(Context _context, Intent _intent) { // TODO Auto-generated method stub String a = _intent.getAction(); MessageHandler.log(“Received action: ” + a); // just a wrapper for printing to a log } } 但它没有打印到日志。 我一直按下我的Android电源按钮,屏幕打开/关闭,但我的消息没有出现在日志中。 我错过了什么? 它看起来和我在网上找到的例子一样。

有没有办法在Android KitKat中以编程方式阻止SMS?

这是完全和完全不可能在Android Kitkat,因为谷歌已经对消息的工作方式做了很多改变? 我曾尝试使用广播接收器和abortBroadcast,但无济于事。

Android:将传感器数据从服务广播到活动

我正在尝试学习Android应用程序开发,并编写了一个非常简单的应用程序,其中包含一个调用服务的活动。 该服务将测量的加速度广播到活动。 问题是服务运行正常,但它不会将数据发送回活动。 即,我的接收器上的onReceive永远不会被调用。 此外,当活动结束时,有一个例外,说我的接收器尚未注册。 下面是我的服务,活动和manifest.xml的代码。 任何帮助将非常感谢。 活动呼叫服务: package com.practice; import com.practice.SimpleService; import android.app.Activity; import android.content.BroadcastReceiver; import android.content.Context; import android.content.Intent; import android.content.IntentFilter; import android.os.Bundle; import android.util.Log; import android.view.Window; public class ServiceActivity extends Activity { MyReceiver myReceiver=null; Intent i; static final String LOG_TAG = “ServiceActivity”; /** Called when the activity is first created. */ @Override public […]

多个警报在引导后重新启动

我正在设置多个警报,以便在特定日期重复这些警报。 现在我听说Android不会在重启时保存警报。 我还读到当BOOT_COMPLETED重新安排所有警报时应该使用BroadcastReceiver 。 但是,如果我每天有5个警报=在不同日期安排了大约35个警报,如何告诉BroadcastReceiver在重新启动后重新安排警报。 我需要将它们存储在数据库中吗? 我如何存储它们? 或者我需要BOOT_COMPLETED吗? 这种事有什么例子吗? 我找不到它。 这是我目前用于设置警报和简单接收器类的内容。 我在这里使用的是Service而不是BroadcastReceiver,因为我听说BR应该只用于处理短的事情,将来我将不得不使用一些长的声音片段。 private void setAlarm(){ Intent intent = new Intent(getBaseContext(), AlarmReceiver.class); PendingIntent pendingintent = PendingIntent.getService(getBaseContext(), 2, intent, PendingIntent.FLAG_CANCEL_CURRENT); AlarmManager am = (AlarmManager) getSystemService(ALARM_SERVICE); am.set(AlarmManager.RTC_WAKEUP, System.currentTimeMillis() + sveskupa, pendingintent); Toast.makeText(getBaseContext(), “Alarm is set”, Toast.LENGTH_LONG).show(); } AlarmReceiver类: public class AlarmReceiver extends Service{ @Override public IBinder onBind(Intent intent) […]

SMS_RECEIVED onReceive android 2.3.5无法触发

最近我一直在为这个问题感到困惑,在2.3.5之前,这似乎工作正常(在我的同事设备上)。 然而,在我的现在它永远不会触发。 我已经剥离了代码,并制作了一个非常简单的测试应用程序来查看正在发生的事情。 基本上onReceive代码似乎永远不会触发,即使adb / logcat似乎确实显示了BroadcastReveiver的寄存器确实发生了。 这是我去过的简单代码: 然后: package com.broadcasttech.testsmsreceive; import android.app.Activity; import android.content.BroadcastReceiver; import android.content.IntentFilter; import android.os.Bundle; import android.util.Log; public class TestSMSReceiveActivity extends Activity { private BroadcastReceiver receiver; private static final String TAG = “TestSMSApp”; /** Called when the activity is first created. */ @Override public void onCreate(Bundle savedInstanceState) { super.onCreate(savedInstanceState); setContentView(R.layout.main); Log.i(TAG, ” […]

在哪里注册广播接收机的最佳做法?

关于注册接收器的“最佳”位置的快速意见问题? 在我的情况下,每次UI需要更新时,我的服务都会发送广播。 选项,因为我理解他们。 清单。 Oncreate。 新兵。 的onResume 当然还有相应的取消注册。 我认为对于UI更新场景,有意义的是放入onresume和onpause ……你的想法?

oreo中的sendOrderedBroadcast setPackage要求

除非我专门设置包名,否则为什么Android Oreo中的以下有序广播会失败? final Intent vrIntent = new Intent(RecognizerIntent.ACTION_GET_LANGUAGE_DETAILS); // Setting the package it will work. Omitting, it will fail // vrIntent.setPackage(“com.google.android.googlequicksearchbox”); getContext().sendOrderedBroadcast(vrIntent, null, new BroadcastReceiver() { @Override public void onReceive(final Context context, final Intent intent) { // final Bundle bundle = intent.getExtras(); final Bundle bundle = getResultExtras(true); if (bundle != null) { if (bundle.containsKey(RecognizerIntent.EXTRA_SUPPORTED_LANGUAGES)) { […]

AlarmManager从不在AlarmReceiver / BroadcastReceiver中调用onReceive

我仍然无法触发我的AlarmReceiver类’onReceive方法。 这个实现有什么问题吗? 所有这一切应该是等待一段时间(最好是6天),然后弹出一个通知。 (你能相信没有内置系统吗?crontab任何人!?) MyActivity和BootReceiver都在必要条件下设置了警报。 AlarmService启动通知。 并且AlarmReceiver 应该捕获警报并启动AlarmService,但它从未捕获过该广播,并且无论我做什么都不会。 哦,我一直在测试我的Droid X,2.3.4。 项目是针对API 8构建的。 PS大部分内容改编自http://android-in-practice.googlecode.com/svn/trunk/ch02/DealDroidWithService/ ———— MyActivity.java ———— public class MyActivity extends Activity implements SensorEventListener { private void setupAlarm() { Log.i(TAG, “Setting up alarm…”); AlarmManager alarmMgr = (AlarmManager) context.getSystemService(Context.ALARM_SERVICE); PendingIntent pendingIntent = PendingIntent.getBroadcast(context, 1, new Intent(context, AlarmReceiver.class), 0); // Get alarm trigger time from prefs Log.i(TAG, “Getting […]

广播接收器在某些设备上不工作背景

我正在尝试使用Broadcast Receiver类获取WiFi连接更改事件。 我已在三星S7 edge和HTC 626Q上测试了它,它运行良好(即使应用程序关闭),但如果应用程序关闭,这不适用于华为GR5 2017。 它仅在应用程序在屏幕上运行时才有效。 S7和GR5设备都有Android 7(Nougat)操作系统。 广播接收器 public class NetworkChangeReceiver extends BroadcastReceiver { @Override public void onReceive(Context context, Intent intent) { Toast.makeText(context,intent.getAction(),Toast.LENGTH_SHORT).show(); } } AndroidManifest文件 我知道我可以使用服务,但如果我可以将Broadcast Receiver用于所有设备,那就太好了。 我发现很多关于“广播接收器没有工作背景”的问题,但我找不到我的问题的答案。 为什么会发生这种情况并且有办法克服这个问题(仅限使用广播接收器)?

在`Service`类中运行新的`runnableThread`时出现java.lang.ClassCastException

我有一个应用程序,包含一个broadcastReceiver ,它监听所有新收到的短信。 如果接收到任何新的SMS,则此BroadcastReceiver启动运行GPS并返回坐标的后台Service ,此坐标检索需要运行一个新线程,在Service类中没有getApplicationContext()所以我使用’getContentBase()’启动新线程这是代码 ((Activity)getBaseContext())。runOnUiThread(new Runnable(){ ((Activity)getBaseContext()).runOnUiThread(new Runnable() { @Override public void run() { // TODO Auto-generated method stub LocationManager locationManager = (LocationManager) getSystemService(Context.LOCATION_SERVICE); LocationListener locationListener = new MyLocationListener(); locationManager.requestLocationUpdates( LocationManager.GPS_PROVIDER, 5000, 10, locationListener); } } 我得到了这个例外 E/AndroidRuntime(24700): java.lang.ClassCastException: android.app.ContextImpl cannot be cast to android.app.Activity 这是接收器在清单中定义的方式 以下是服务在BroadcastReceiver启动方式 @Override public void onReceive(Context context, Intent intent) { […]