Tag: broadcastreceiver

如何? 侦听位置设置被打开(Android App)

所以我花了几个星期的时间来研究我的Android应用程序,并研究实现我需要做的最好的方式,但仍然无法正确使用..任何/所有帮助都非常感谢,因为我仍然掌握着一切…… 任务: (假设“位置”/ GPS设置当前已关闭),我需要让我的应用程序一直在监听“位置”设置是否打开..此时,只需启动一个活动。 思路: 这些是我认为可能有用的不同方式: LocationListener使用“onProviderEnabled” 使用“onGpsStatusChanged”和“GPS_EVENT_STARTED”的GpsStatusListener GpsProvider需要卫星(以确定它是否开始),或以某种方式使用GpsProvider的“AVAILABLE”Constant / int 使用“ACTION_SERVICE_INTENT”(和/或)“ACTION_INJECTED_SETTING_CHANGED”和“onGetEnabled”或“isEnabled”的SettingInjectorService Settings.Secure使用“LOCATION_MODE”!=“LOCATION_MODE_OFF” ContentObserver / ContentResolver 意图getAction(…) 某种“if / else” 问题: 任何以下任何问题的建议或答案都非常感谢.. 以上哪些想法是完成任务的最佳方式? 越简单越好,但最重要的是它需要随时监听,并在打开位置设置时立即响应。 对于上述哪一个最佳效果,我将如何实现它? (例如,我需要一个BroadcastListener?还是一个服务?它将如何组合在一起? 我非常感谢你能给我提供的任何建议或帮助..我仍然掌握所有这些,但有足够的信心去做,并渴望发布我的第一个应用程序..所以,谢谢你,这意味着很多并将极大地帮助我。 编辑: 好的,所以这就是我到目前为止所拥有的…… inheritance人我的接class人: MyReceiver.Java public class MyReceiver extends BroadcastReceiver { private final static String TAG = “LocationProviderChanged”; boolean isGpsEnabled; boolean isNetworkEnabled; public MyReceiver() { // EMPTY // MyReceiver […]

电话处于深度睡眠状态时接收音量按键事件

当手机处于深度睡眠模式时,我正试图捕捉音量调高/按下事件。 我已经阅读了几篇文章,在这里我做了什么。 在Activities onCreate方法中,我设置了一个WakeLock PowerManager mgr = (PowerManager)this.getSystemService(Context.POWER_SERVICE); WakeLock wakeLock = mgr.newWakeLock(PowerManager.PARTIAL_WAKE_LOCK, “MyWakeLock”); wakeLock.acquire(); 我已经读过,即使我的屏幕被锁定,如果我设置了这个,我的应用程序将响应事件。 此外,我已添加Android Manifest的权限。 然后在onCreate方法中,我声明了我的广播接收器 VolReceiver volumeBroadcastReceiver = new VolReceiver(); IntentFilter filter = new IntentFilter(); filter.addAction(“android.media.VOLUME_CHANGED_ACTION”); registerReceiver(volumeBroadcastReceiver, filter); 这一切都很好,然后应用程序在前台或后台,但然后我通过按下电源按钮应用程序停止接收广播事件锁定我的手机屏幕,我认为PowerManager必须解决这个问题,但事实并非如此。 所以请帮帮我,提供一些信息。

耳机按钮双击android

我使用此代码检测我的广播接收器中的单击和双击耳机按钮: int d = 0; @Override public void onReceive(Context context, Intent intent) { String intentAction = intent.getAction(); if (!Intent.ACTION_MEDIA_BUTTON.equals(intentAction)) { return; } KeyEvent event = (KeyEvent) intent .getParcelableExtra(Intent.EXTRA_KEY_EVENT); if (event == null) { return; } int action = event.getAction(); switch (event.getKeyCode()) { case KeyEvent.KEYCODE_HEADSETHOOK: if (action == KeyEvent.ACTION_DOWN) { d++; Handler handler = new Handler(); […]

如何访问在BroadcastReceivers中的MainActivity(布局)中声明的Switch按钮

我有一项任务,当飞机模式为ON / OFF时,我必须改变开关按钮的状态。 我有一个主要活动,我宣布Switch Button,我想从BroadcastReceiver Class更改Switch的状态开/关 接收器 public class MyReceiver extends BroadcastReceiver { @Override public void onReceive(Context context, Intent intent) { boolean isAirplaneModeOn = intent.getBooleanExtra(“state”, false); if(isAirplaneModeOn){ What Should i do ? } } } layout_main_activity

在Android中创建一个自动启动的广播接收器

问题: 我愿意创建一个简单地作为后台进程启动的应用程序,每当有新消息进入设备时,它应该将其记录到文件中或者只显示一个toast消息。 我已经阅读了很多博客,并尝试按照上述步骤进行操作。 但是,我继续在我的设备上发送消息,甚至没有显示在设备日志中。 我想在从Froyo到Lollipop的设备上运行它。 因此,我不愿意使用支持API 19及更高版本的新Telephony API。 清单文件 源文件 package com.abc.test; import android.content.BroadcastReceiver; import android.content.Context; import android.content.Intent; import android.widget.Toast; public class SMSHandler extends BroadcastReceiver { @Override public void onReceive(Context context, Intent intent) { // TODO Auto-generated method stub Toast toast = Toast.makeText(context, “message initiated”, Toast.LENGTH_LONG); toast.show(); if (intent.getAction() .equals(“android.provider.Telephony.SMS_RECEIVED”)) { toast = Toast.makeText(context, “message […]

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

好吧,我已经尝试了Stack上的每个解决方案,没有任何效果。我当前的方法从MainActivity注册“SmsListener”接收器。 我要做的就是初始化onReceive方法。 没有错误; 它根本就没有接收广播。 我究竟做错了什么? 在此处粘贴适用的代码。 还有其他可能需要的东西请你问一下。 更新:这是一个类似的未解决的问题当Google Hangout或其他应用收到它时,听取Android传入的短信我正在Android 6.0.1下测试。 目标Sdk版本是22. Min Sdk是19.值得注意的是,我刚刚使用Android 4.4.2在LG Optimus GPro上测试了我的原始代码并且它有效。 它仍然无法在我的Nexus上运行Android 6.0.1。 表现: ` 主要活动 package com.biapps.makin_biscuits; import android.service.notification.NotificationListenerService; import android.app.NotificationManager; import android.content.Context; import android.content.IntentFilter; import android.media.AudioManager; import android.support.v7.app.AppCompatActivity; import android.os.Bundle; import android.content.Intent; import android.view.View; import android.widget.ImageButton; import android.widget.Toast; public class MainActivity extends AppCompatActivity { //set object labels and […]

Android BroadcastReceiver不会注册

我正在尝试在我的音频应用程序中添加一个简单的广播接收器,这样当用户点击他们的耳机上的ACTION_MEDIA_BUTTON时,我可以将所有内容静音。 我已经读过你可以在清单中注册它,也可以在代码中动态注册它。 我已经走了在代码中注册它的路径,因为我需要调用主活动类中的方法来响应媒体按钮按下。 然而,出于某种原因,我的BroadcastReceiver只是不会注册,我找不到任何解释原因的东西(白发增加)。 以下是我在MainActivity.java中的内容: public class MainActivity extends Activity { public IntentFilter intentFilter = new IntentFilter(Intent.ACTION_MEDIA_BUTTON); public BroadcastReceiver MediaButtonIntentReceiver = new BroadcastReceiver() { @Override public void onReceive(Context context, Intent intent) { String intentAction = intent.getAction(); if (Intent.ACTION_MEDIA_BUTTON.equals(intentAction)) { KeyEvent event = (KeyEvent) intent .getParcelableExtra(Intent.EXTRA_KEY_EVENT); int action = event.getAction(); if (action == KeyEvent.ACTION_DOWN) { Log.e(“INFO”, […]

带有监听器的BroadcastReceiver在不使用时会耗尽电池电量

我有一个等待TelephonyManager.ACTION_PHONE_STATE_CHANGED的接收器.ACTION_PHONE_STATE_CHANGED: public void onReceive(Context context, Intent intent) { String theAction = intent.getAction(); if (theAction != null && theAction.equals(TelephonyManager.ACTION_PHONE_STATE_CHANGED)) { CONTEXT = context; startListening(); } 当它得到它,我注册听众(为方向传感器): public void startListening() { sensorManager = (SensorManager) CONTEXT.getSystemService(Context.SENSOR_SERVICE); List sensors = sensorManager.getSensorList(Sensor.TYPE_ORIENTATION); if (sensors.size() > 0) { sensor = sensors.get(0); running = sensorManager.registerListener(sensorEventListener, sensor, SensorManager.SENSOR_DELAY_FASTEST); } } 然后,在Listener的onSensorChanged()方法中: public void […]

Android – 广播接收器未被解雇

我知道这已经被问到了ALOT,但是我一直在搜索互联网几个小时,我甚至重复使用了我以前的一些代码来接收短信,我得到了……没什么。 所以,这里是基本应用程序接收短信但应用程序永远不会收到意图。 如果文本是从同一部手机发送的,我认为意图可能会被忽略,但似乎并非如此,因为其他应用程序可以正常收听文本。 这是我的清单: 而且,这里是接收器,这里似乎没什么新东西,所以我不知道问题是什么: package com.encima.smsreceiver; import android.content.BroadcastReceiver; import android.content.Context; import android.content.Intent; import android.os.Bundle; import android.telephony.SmsMessage; import android.util.Log; import android.widget.Toast; public class MessageReceiver extends BroadcastReceiver { private static final String TAG = “Message recieved”; @Override public void onReceive(Context context, Intent intent) { Bundle pudsBundle = intent.getExtras(); Object[] pdus = (Object[]) pudsBundle.get(“pdus”); SmsMessage messages =SmsMessage.createFromPdu((byte[]) […]

android – 将广播发送到MainActivity,然后显示TextView

一旦在另一个View文件中调用了一个方法,我想取消隐藏TextView。 TextView位于MainActivity中。 为此,我计划将View文件中的广播发送到MainActivity,但它不起作用。 我怎么做到这一点?