广播监听拨号器onReceive无法执行 [问题点数:100分,结帖人qq_42028447]

Bbs1
本版专家分:0
结帖率 50%
Bbs1
本版专家分:0
Bbs5
本版专家分:2243
Blank
黄花 2018年1月 移动开发大版内专家分月排行榜第二
2017年12月 移动开发大版内专家分月排行榜第二
Bbs1
本版专家分:0
Bbs1
本版专家分:0
其他相关推荐
一条广播onReceive方法多次执行
在最近的项目中用到了极光推送,集成进去后,发送自定义消息,接收到自定义消息后,通过广播的形式将消息发送出去,自定义消息自然需要用到自定义的receiver,自定义完成receiver后,运行项目发现一条广播发送后,onReceive()方法竟然执行了多次,尤其是在将消息发送到BaseActivity时,更奇怪的事情发生了,打开了几个activity,onReceive()方法就会执行几次,可是极光
BaseActivity 中使用广播接收器时,onReceive 会多次执行
项目中使用了信鸽推送,然后自定义了receiver,然后发送广播到Baseactivity里进行数据处理,这时出现了一个问题:BaseActivity 中的onReceive 被多次调用,经过断点发现,只发送了一次广播,onReceive执行了两次。 原因:1.我是在Baseactivity中的onreate() 注册了广播接收器,这样一来,子类activity创建的时候会重复注册,导致有多个B...
在BroadCastReceiver的onReceive方法中执行耗时操作的正确姿势到底是什么
经常听说在onReceive中执行耗时操作要开个Service,不要用子线程。   原因嘛,BroadCastReceiver默认情况下是在主线程执行的,所以它所在的进程就是这个应用的进程,而当用户退出这个应用后,应用所在的进程因为不包含任何活动组件(因为BroadCastReceiver的生命周期很短的嘛),所以当内存不够的时候,会被优先结束掉,所以导致其中的子线程无法完成自己执行的任务。
android网络监听广播遇到网络变化执行多次onRe
今天在使用BroadcastReceiver对网络状态进行监听的时候遇到了这个问题,在网络变化时BroadcastReceiver连续执行了几次,先上自定义的BroadcastReceiver代码: public class ConnChangedReceiver extends BroadcastReceiver { private ConnectivityManager connMana
在BroadCastReceiver的onReceive方法中执行耗时操作的正确姿势
经常听说在onReceive中执行耗时操作要开个Service,不要用子线程。   原因嘛,BroadCastReceiver只在onReceive方法执行时是激活状态,只要onReceive一返回,它即为失活状态。Receiver进程是被一个激活状态的BroadCastReceiver所保护而不被系统终止的,一旦onReceive返回,Receiver进程变为一个空进程,空进程是可以在任意
求助大神,安卓中的蓝牙调用,broadcastReceiver中的onReceive函数怎么都不执行
public class MainActivity extends Activity { private BluetoothAdapter bla; StringBuilder mess;    @Override    protected void onCreate(Bundle savedInstanceState) {        super.onCreate(savedInstanceS...
不要在广播的onReceive()方法中执行耗时操作
不要在onReceive()方法中添加过多的逻辑或执行耗时操作,因为onReceive()方法运行在主线程中,耗时操作会导致ANR。 同时,广播接收器中不允许开启子线程: 对于静态注册的广播接收器来说,广播接收器对象的生命周期较短,执行完onReceive()方法就会变为垃圾对象而被回收,在子线程执行完之前,若对应的Activity退出,他们所在进程就变成了空进程(没有任何活动组件的进程),系...
极光推送——带(BroadCastReceive中消息跳转)
使用极光推送带广播代码
解决Wifi,耳机 等广播接收两次现象
最近在写一个项目,遇到了断开连接网络时,广播接收两次现象,根据广播接收特性很好解决这个问题,我们可以在 contentReceiver 中定义一个标记变量, 当每次调用此方法的时候,执行++方法,再通过接口回调的方式,利用系统收到广播后自动回调 onReceiver() 方法,实现分辨出两次广播实现代码如下: public class MusicReceiver extends BroadcastR
android 解决 广播接收者监听网络变化会受到两次广播
项目中遇到这个问题,百度了下有问这个问题的,也不知道有没有解决,就这样找了好久才找到答案 我是需要在有数据连接的时候做操作,具体的原因我也没搞太明白,希望有清楚的朋友看到后指点下~~~ 首先贴下广播接收者的代码  private class ConnectionChangeReceiver extends BroadcastReceiver{   @Override   pu
Android覆盖安装,卸载移除广播监听器。未完待续
public class PackageReceiver extends BroadcastReceiver { @Override public void onReceive(Context context, Intent intent) { // 安装 if (intent.getAction().equals("android.intent.ac
android中的broadcastreceiver不可以做耗时操作
注意:由于Broadcast和Service一样,都运行在主线程中,所以在这两个里面我们无法做一些长时间的耗时操作 广播接收者( BroadcastReceiver )用于接收广播 Intent ,广播 Intent 的发送是通过调用Context.sendBroadcast() 、 Context.sendOrderedBroadcast() 来实现的。通常一个广播 Intent 可以被订
在来电监听服务中动态注册去电广播(BroadcastRecevier)
1 去电广播接收函数: /** * 广播监听receiver * @author admin * */ public class OutCallRecevierDynamicRegister extends BroadcastReceiver { @Override public void onReceive(Context context, Intent inten
广播onReceive()方法的context类型探究
1. 铺垫 1). 非Activity类型的context并没有所谓的任务栈; 2). 出于安全原因的考虑,Android是不允许Activity或Dialog凭空出现的,一个Activity的启动必须要建立在另一个Activity的基础之上,也就是以此形成的返回栈。而Dialog则必须在一个Activity上面弹出(除非是System Alert类型的Dialog),因此在这种场景下,我们只...
Broadcast Receiver开启服务而不是子线程处理耗时操作
Broadcast Receiver用于接收并处理广播通知(broadcast announcements)。多数的广播是系统发起的,如地域变换、电量不足、来电来信等。程序也可以播放一个广播。程序可以有任意数量的 broadcast receivers来响应它觉得重要的通知。broadcast receiver可以通过多种方式通知用户:启动activity、使用NotificationManage
关于Android的BroadcastReceiver的onReceive方法中回调结果给Activity的问题
目前这么一个需求,需要写一个广播去接收其他APP发出的广播广播不止接收一次,每次接收都会去更新Activity中的内容。本可以直接把广播接收写在Activity中,但我想单独出来写,但这样子的话无法获取到Activity中的布局元素,也就无法更新内容,本来想用全局变量,但问题不是传递变量那么简单,还要考虑每次接收到要更新的问题,所以还是必须在onReceive中处理。最后的做法是写一个callB
动态广播监听HOME键
本来在onKeyDown里监听HOME键,运行和install都没问题,但是在push安装就监听不到了。 废了好大劲,找到一个例子,用动态广播监听,实测可行,再此分享一下。 复制广播类代码 class HomeKeyEventBroadCastReceiver extends BroadcastReceiver { static final String SYSTEM_REASON
安卓广播使用时的ANR问题,onReceive的生命周期为10秒
在 Android中,程序的响应(Responsive)被活动管理器(Activity Manager)和窗口管理器(Window Manager)这两个系统服务所监视,当BroadcastReceiver在10秒内没有执行完毕,Android会认为该程序无响应,所以在 BroadcastReceiver里不能做一些比较耗时的操作,否则会弹出ANR(Application No Respons
BroadcastReceiver广播接收者(五)——onReceive()中的耗时任务以及短信窃听
MainActivity如下: package cc.vv; import android.os.Bundle; import android.app.Activity; import android.content.Intent; import android.view.View; import android.view.View.OnClickListener; import android
Android广播接实现电话的监听(电话的状态,拦截)
 Android广播接实现电话的监听   1:需要在AndroidManifest.xml清单中添加权限  2:注册广播 要注意事件的级别 (android中的级别-1000~1000) 详细配置请看 AndroidManifest.xml    http://schemas.android.com/apk/res/android"    
BroadCastReceiver无法接收到广播的一种可能
0x000x01广播接收器如果在activity中注册,则它跟随着activity的生命周期,在onCreate()方法里进行注册,在onDestroy方法里进行销毁,则只要这个Activity被创建了,并且即使在后台运行,也没有被Destroy,则该广播接收器就一直能接收广播,反之,则无法接收广播。 另外,我们需要知道的一些知识的: 1.接收广播之后,广播接收器的onReceive()方法是在
android 开机广播接收不到的原因
本文转载自http://www.trinea.cn/android/android-boot_completed-not-work/   Android应用如何开机自启动、自启动失败原因 本文主要介绍Android应用如何开机自启动、自启动失败的原因、adb命令发送BOOT_COMPLETED。 问题:应用程序是否可以在安装后自启动,没有ui的纯service应用如何启动?答案马上揭晓^_*...
android监控网络状态变化防止多次广播的一种解决办法
从网上查阅了好多资料,整合成这篇,感谢csdn。测试了一下,能够在获得多次广播状态下显示一次网络断开的toast,不多说,上代码: 网络连接检测类: import android.content.Context; import android.net.ConnectivityManager; import android.net.NetworkInfo; /**  * 网络连接状态检查
如何在应用中发送自己定义的广播Broadcast
广播是一种可以跨进程的通信方式。  1、对广播的理解可以类比上学时听到的校园大喇叭。只要喇叭一响,在校园中的我们就能接受到喇叭传来的信息。  2、android中广播可以大致分为两类:标准广播和有序广播 首先,广播都是通过Intent来发送的,且应该有相应的接收器来执行接收后的动作。为了将广播和接收器做到一一对应,需要定义具有唯一性的action字符串。 标准广播
广播接收器的生命周期及使用
一:Android 广播的生命周期     一个广播接收者有一个回调方法:void onReceive(Context curContext, Intent broadcastMsg)。 当一个广播消息到达接收者时,Android调用它的onReceive()方法并传递给它包含消息的Intent对象。广播接收者被认为仅当它执行这个方法时是活跃的。当onReceive()返回后,它是不活跃的。
Android3.1 后广播不响应的问题
在做Android开发时,很多应用由于各种目的,希望在机器启动时被唤醒,一般的做法是写一个BroadcastReceiver,接收对应的boot action,当然别忘了在Manifest中添加permission "android.permission.RECEIVE_BOOT_COMPLETED“。但是最近在做4.0开发时,有同事声称这个广播接收不到了,同时其他有人又说自己的能接收到,到底是怎
为什么不能直接在BroadCastReceiver中开一个线程执行耗时任务
BroadCastReceiver的生命周期非常简短:接收到广播→onReceive()→结束;所以在onReceive方法中,不要执行耗时的任务,如果该方法执行时间超过10秒,Android就会认为该程序无响应,并弹出ANR的对话框。如果必须执行耗时任务可以考虑,在onReceive中开启服务来执行,但不要使用线程,因为BroadCastReceiver的生命周期很短,可能出现子线程还没有结束,B
BroadcastReceiver生命周期探讨
前言之前做线控耳机连点两下切下一首歌的需求时, 曾经尝试在BroadcastReceiver中用一个成员变量保存最后一次按下的时间, 但后来发现这个值一直是初始值, 对它赋值后, 再次收到Intent时发现它的值又变成初始值了. 后来看到一些问题, 问BroadcastReceiver的生命周期, 按理说它就一个onReceive能有什么生命周期, 其实这里问的生命周期和我们平时说的Activit
如何在 BroadcastReceiver 中执行耗时操作?
一、BroadcastReceiver 注册方式     BroadcastReceiver 有两种注册方式,一是使用 { Context.registerReceiver()} 动态注册,另一种是在 AndroidManifest.xml中通过 元素静态注册。 Note:     如果你在Activity的 onResume() 方法中注册广播,就需要在 onPause()方法中取
Delphi实现Android 广播事件监听(动态注册广播
Android 下的广播简介在Android下,很多事件需要使用到系统下的广播。例如:你想知道手机电量的变化、是否安装了一个新的程序应用包、扩展介质被移除等信息时。Android广播分为两个方面:广播发送者和广播接收者,通常情况下BroadcastReceiver指的是广播接收者(广播接收器)。 要使广播生效必须先注册广播,实现注册就是告诉系统:要监听什么广播,和监听到之后要做什么动作完成什么工
BroadcastReceiver之动态注册监听网络状态变化
欢迎使用Markdown编辑器写博客本Markdown编辑器使用StackEdit修改而来,用它写博客,将会带来全新的体验哦: Markdown和扩展Markdown简洁的语法 代码块高亮 图片链接和图片上传 LaTex数学公式 UML序列图和流程图 离线写博客 导入导出Markdown文件 丰富的快捷键 快捷键 加粗 Ctrl + B 斜体 Ctrl + I 引用 Ctrl
Android 监听开机广播启动服务 动态注册时间变化监听广播
开机广播权限 开机广播 注册    开机广播 public class BootedReceiver extends BroadcastReceiver { @Override public void onReceive(Context context, Intent i
android 广播一次发送出现多次接收
出现问题的原因可能是以下两种情况: 1.new了多个接收者。 2.接收者(同一个)多次注册。总结:最后接收者的创建与注册不要在onStart或者onResume等方法中执行。放在onCreate(),确保都是执行一次。
解决网络监听多次发送广播的问题
有时候我们需要写一个程序来监听网络的变化,以实现即时刷新的问题,比如微信或者QQ都有自动重连的功能。单纯的用广播接收和ConnectivityManager难以实现,因为每次我们切换g网和wifi或者启用一个网络,系统都会发送多次网络变化的广播,如果我们把业务逻辑放在广播接收器里面处理,就会不必要的调用多次。比如当我们启动wifi时,系统将发送多次广播,当我们判断是否有网络连接的时候,会多次判断有
监听广播使用方法的详解
监听广播使用方法的详解,监听广播使用方法的详解,监听广播使用方法的详解,监听广播使用方法的详解,
Android 广播监听应用APK卸载、覆盖、安装的状态
相关文章推荐:Android 安装包APK瘦身、多渠道打包总结Android 检查应用包名是否存在并启动或安装指定包名Android 监听Home键、Back键、多任务键最新解决方法 Android 广播Broadcast的两种注册方式静态和动态导语在项目中为了实现应用升级后清楚缓存和SharedPreferences。这样我是利用广播监听应用包的改变状态去实现的,当然实现的方法还有很多。下面,我...
关于BroadCastReceiver无法接收到广播的问题
我们在做android项目的时候,很多时候会碰到自己写的广播接收器无法就收到发送的广播,这是很郁闷的事情。 查看代码,也许是自己少写了取消注册,也许是action加入错误,但是这些都不是主要的错误,问题不大,但是如何不是这些问题呢,代码检查后发现很“完美”~! 如果是没有经验的人,这就要费些周折了,我跟大家说下,你很可能是犯的以下的错误: 广播接收器如果在activity中注册,则它跟随着a
为什么不能在BroadcastReceiver中开启子线程
如果开发者需要在Service处理耗时任务,建议在Service中另外启动一条新线程来处理该耗时任务.就像前面BindService中看到的, 程序在BindService中的onCreate()方法中启动了一条新线程来处理耗时任务.可能有读者感到疑惑:直接在其他程序组件中启动子线 程来处理耗时任务不行吗?这种方式也不可靠,由于activity可能会被用户退出,Broadcast Receiver
【Android】【Receiver】静态Receiver在APP未启动时监听广播
转载自:https://blog.csdn.net/a229413040/article/details/51791766
android 直接在activity/broadcast receiver中启动子线程来处理长时间的耗时任务不行吗?
如果开发者需要在Service处理耗时任务,建议在Service中另外启动一条新线程来处理该耗时任务.就像前面BindService中看到的,程序在BindService中 的。nCreate()方法中启动了一条新线程来处理耗时任务.可能有读者感到疑惑: 直接在其他程序组件中启动子线程来处理耗时任务不行吗?这种方式也不可靠, 由于^ctivity可能会被用户退出,Broadcast Rece
Android intent .后面的广播(系统);监听大全
通过Intent意图可以跳转到不同的Activity页面,先来介绍下Action。在Android开发中Action的作用:还望大家相互学习,如解释有误敬请原谅,并留言告知 Action是指Intent是指一个要完成的动作,是一个字符串常量。在Intent类里面定义了Action的常量属性,例如:ACTION_CALL (打电话)  ACTION_EDIT(编辑数据)等等,除此之外,我们可以
Android 7.0 隐式广播-监听网络变化
Android8.0开始,Android将不支持大部分隐式广播,包括自定义的广播和系统的。需要通过context.regeister的方式注册。Android7.0前,Android系统前网络切换时,会发广播,业务只要监听广播即可。public class NetChangeReceiver extends BroadcastReceiver {    private static final S
静态注册广播监听网络变化
常用的IM聊天App中都会判断网络连接是否可用,今天我们就用静态注册注册广播监听网络的变化:首先申请网络权限 然后在mainifest文件静态注册广播: android:e
ANR 出现广播超时的分析
Android 广播处理机制,在逐个处理广播消息时,安卓会设置个时间戳,起个延迟触发消息,如果对某个app的广播接收器处理超时,这个延迟触发消息就被触发成了超时消息,否则消息处理后就会取消这个延迟触发消息。
Android监听系统广播 和自定义广播遇到的问题
现在有一个项目需要做一个开机自启动的功能,这个怎么实现呢?一顿咔咔咔百度,发现很多推荐 使用监听系统开机广播BOOT_COMPLETED,CONNECTIVITY_CHANGE 来实现。那好吧  我也这么来做。先写一个RootReceiver  extends BroadcastReceiver   ,在onReceiver中  做自己想做的逻辑   ,然后在mianfest中注册 BOOT_C
Broadcast与service----------通过广播启动服务
BroadcastReceiverd的流程:注册、发送广播。       Service的流程:注册、启动、停止。       上一篇已经讲了,注册广播有两种方式,静态的和动态的。今天我用动态的方式注册一个广播,通过广播来启动服务。 大致过程为:定义三个按钮:发送、取消、退出。点击发送按钮时,注册广播、在广播的onReceive()方法中启动服务。 点击取消,停止服务。点击退出,停止服务退
拨号器广播
IP拨号器
Activity里接收不到广播是怎么回事
1.Activity注册动态广播和销毁广播 @Override protected void onCreate(Bundle savedInstanceState) { super.onCreate(savedInstanceState); registerExitAppReceiver(); } public void registerExitAppReceiver()
为什么不建议在广播中启动一个线程做任务
进程生命周期泄漏
为什么监听不到开机广播action.BOOT_COMPLETED
转:http://www.jcodecraeer.com/a/anzhuokaifa/androidkaifa/2014/0709/1630.html Android手机开机后,会发送android.intent.action.BOOT_COMPLETED广播监听这个广播就能监听开机。 一般的步奏如下: 注册广播 1 2 3
Android 使用广播对电话进行监听和挂断
  1.添加权限 <!--拨打电话的权限--> <uses-permission android:name="android.permission.PROCESS_OUTGOING_CALLS" /> <uses-permission android:name="android.permission.READ_PHONE_STATE" /> <...
Android 为什么监听不到开机广播action.BOOT_COMPLETED
为什么监听不到开机广播action.BOOT_COMPLETED
android 监听手机屏幕唤醒和睡眠广播
最近做APP要做一个android 手机屏幕唤醒和睡眠的监听。 但发现下面问题: 我想获取调用屏幕打开时应用。在我 AndroidManifest.xml 已经指定:android.intent.action.SCREEN_ON 作为接收器的意图过滤器不起作用 解决方法: 需要动态注册: // 屏幕状态广播 ScreenStatusRec
广播监听USB和外设插拔状态
直入正题,看代码 //USB插入监听 添加广播过滤意图 IntentFilter filter = new IntentFilter(); filter.addAction("android.hardware.usb.action.USB_DEVICE_ATTACHED"); filter.addAction("android.hard
Android应用卸载广播监听
1.今天在项目中遇到一个小问题,感觉挺好玩的,记录下: 在进行应用卸载弹窗时,通过接收Intent.ACTION_PACKAGE_REMOVED 广播,进行判断处理,即可完成应用的卸载监听,可是在实际使用中,发现应用在进行覆盖安装时,也会接收到这个广播,而且比Intent.ACTION_PACKAGE_REPLACED靠前,这就尴尬了 后来通过查询一些资料发现,原来应用在覆盖安装时是会接收到三
Android 实现广播监听电话的状态
从事android开发的朋友们可能电话状态监听不是很擅长,接下来将详细介绍电话状态监听功能的实现步骤,需要了解的朋友可以参考下。 实现手机电话状态的监听,主要依靠两个类:TelephoneManger和PhoneStateListener。  TelephonseManger提供了取得手机基本服务的信息的一种方式。因此应用程序可以使用TelephonyManager来探测手机基本服务的情况。应用...
小米手机部分广播无法接收到的原因
开机广播很容易写,如上代码所示,但是这段代码在小米手机上却失效
我对广播的一下理解
1.广播接收者 广播接收者简单地说就是接收广播意图的Java类,此Java类继承BroadcastReceiver类,重写: public void onReceive(Context context,Intent intent),其中intent可以获得传递的数据; 广播意图就是通过Context.sendBroadcast(Intent intent)或Context.sendO
精通Scrapy网络爬虫
本书深入系统地介绍了Python流行框架Scrapy的相关技术及使用技巧。全书共14章,从逻辑上可分为基础篇和高级篇两部分,基础篇重点介绍Scrapy的核心元素,如spider、selector、item、link等;高级篇讲解爬虫的高级话题,如登录认证、文件下载、执行JavaScript、动态网页爬取、使用HTTP代理、分布式爬虫的编写等,并配合项目案例讲解,包括供练习使用的网站,以及*、知乎、豆瓣、360爬虫案例等。
Android之监听应用的安装与卸载的广播
import android.content.BroadcastReceiver; import android.content.Context; import android.content.Intent; import android.content.pm.PackageManager; import android.text.TextUtils; import andro
Pro Android学习笔记(九九):BroadcastReceiver(3):长时间运行Receiver的问题
文章转载只能用于非商业性质,且不能带有虚拟货币、积分、注册等附加条件。转载须注明出处以及作者@恺风Wei-傻瓜与非傻瓜。 如果receiver的运行时间长于10秒,就要注意了。receiver是在主线程中运行的,如果在onReceive()的处理中,用户进行了UI触发,将可能引发ANR异常,不过和activity的时间限制不同,receiver在10秒而非5秒后触发ANR。 由于存在ANR
实时监测蓝牙状态的Demo
由于项目需要,今天写了一个小的实时监听蓝牙设备连接状态并接受广播的例子。 不多说,直接贴代码,老司机请忽略,MianActivity如下: public class MainActivity extends Activity { private static BroadcastReceiver mReceiver1 = null; private TextView tvTextView
安卓6.0版本更新以后无法利用BluetoothDevice.ACTION_FOUND查找周围设备
我在写蓝牙的时候,一直困扰为何BluetoothDevice.ACTION_FIND广播后却无法接收,导致无法查找周围新设备,只能通过系统设置配对新设备后,再查找到匹配的设备。 于是看了一下StackVoerflow,和安卓6.0的开发者文档,才发现原来6.0以后的如果需要利用本机查找周围的wifi和蓝牙设备,需要在配置文件中申请两个权限: 然后代码里添加runt
BroadcastReceiver 中的onReceiver()方法执行多次的完美结局方案
对于这个问题相信很多人都会遇到,我也是遇到好几次了。最近通过查询资料发现了一种完美的解决方案。 那就是在注册BroadcastReceiver的时候添加一个叫做“android.intent.action.DOWNLOAD_COMPLETED”的action,例如:receiver=new MyReceiver(); IntentFilter intentFilter=new In
Android apk安装监听的几个广播
Intent.ACTION_PACKAGE_ADDED应用被添加 Intent.ACTION_PACKAGE_REMOVED应用被删除 Intent.ACTION_PACKAGE_CHANGED应用被改变 Intent.ACTION_PACKAGE_REPLACED应用被替换 Intent.ACTION_PACKAGE_RESTARTED应用被重启 Intent.ACTION_PACKAG
Android广播常用案例
ip拨号器 以拨打电话广播接收为例介绍步骤: 1. 定义一个类 继承 BroadCastReceiver ,并重写onReceive函数 2. 在清单文件注册广播接收 Receiver   action               3. 广播事件到来之后就会执行onReceive 注意:即使广播接收者没有运行,当广播消息到达的时候,系统会自动启动广播接收者的进程
android4.4监听不到USB插拔广播的解决方法
虽然4.4系统已经是很久以前的版本了,市面上也基本上没有4.4系统的手机,平板等设备。但是有的盒子、电视机用的还是4.4的系统,为了满足客户的需求只能去适配。最近遇到一个客户4.4系统插拔USB监听不到Intent.ACTION_MEDIA_MOUNTED广播的问题。查了下资料,再加上自己的一些修改,最终解决了这个问题。1. 新建一个xml文件,命名为:android.hardware.usb.h...
Android小米手机接收不到开机广播(个人笔记)
这几天在做一项目,开机即开启服务,在服务里检测设备的系统版本是不是最新的,有新版本时,弹一个对话框提醒用户更新系统。 好死不死,真机我用的小米2进行的测试,然后问题来了。 具体的怎么开机就能启动服务不是很难,添加权限,注册开机广播,注册服务,按部就班的来就行,在我这个笔记中不再多记录,贴一个网址,里面有详细的记录,以后自己方便找到:Android问题解决之小米手机接收不到开机广播  (侵立
如何在广播接收者(BroadcastReceiver)中刷新UI
学习android小伙伴今天问了一个大家都可能遇到的问题,打算在自己写的广播接收者里面更新ui,说白了,就是打算干这样一个事: 发送短信,发送完了之后打算在界面显示一个进度圈,在对方收到短信之后就取消显示。 这个问题,如果把进度条改成土司相信大家都会,直接在onReceive 中判断一下即可if (intent.getAction().equals("DELIVERY_MESS_AC
监听短信的两种方式之广播
1. 基于Broadcast接受短信 1.1 原理 Android收到短信后系统会发送一个android.provider.Telephony.SMS_RECEIVED广播。把它放在Bundle(intent.Extras)中,Bundle可以理解为一个Map,短信采用"pdus"作为键,pdus应该是protocol description units的简写,也就是一组短信。Andr
Andoird 监听开机广播和关机广播
需求:有时候,我们需要自己的程序在开机后自动运行;在关机时,记录一些信息到文件中. 一、开机广播监听 Android系统启动完成后会自动发出启动完成广播(android.intent.action.BOOT_COMPLETED), 所有注册了接收启动完成广播的接收器(BroadcastReceiver)都会收到此广播. ①编写一个继承BroadcastReceiver的类,接受系统
Android5.0如何监听USB插拔
USB插拔在3.0之前需要自己写,USBManager并没有提供接口,3.0之后可以直接调用USBManager的USB各种Aciton 如 UsbManager.ACTION_USB_ACCESSORY_ATTACHED UsbManager.ACTION_USB_ACCESSORY_DETACHED UsbManager.ACTION_U
Android解决使用广播监听网络状态变化时接收到多个广播的问题
在使用广播BroadCatsReceiver监听网络状态变化时会碰到这样的问题,在遇到网络变化时会多次执行onReceive,导致接收到多个相同的广播,下面就这个问题进行分析和提出解决办法。        首先,写一个网络工具类,这个类主要是获取网络连接状态,是WiFi、数据网络还是无网络,代码如下: public class NetUtils { private static fin
关于小米手机使用广播无法接受短信的问题
最近学习android时在学到手机应用使用广播监听短信并读取短信内容时,出现了无法监听到短信的问题。 我使用的测试机是小米2,最初以为是广播注册的问题,可是检查代码并改成静态注册也无济于事,于是想到可能是手机问题。 于是我换同学的华为手机试了试,结果是OK的。这样就能确定是小米手机的问题了。 去网上搜了下,最终确定是因为小米手机在短信设置中有一个系统短信优先选项在捣鬼。关掉后就可
onReceive中完成一项比较耗时的工作 , 应该启动 Service 来完成 ,不能使用子线程来解决!!!
Android 中的BroadCastReceiver                                                 作者:阿福       BroadCastReceiver 简介 (末尾有源码) BroadCastReceiver 源码位于: framework/base/core/java/android.content.BroadcastRec
Android静态注册无法接受系统广播问题
概要 引入 google文档 翻译总结 目前提高
监听APP升级广播处理
当旧版本的用户升级新版本的时候需要重新设定一些值处理,这时候需要监听升级版本的广播 当设备是在API12以上的版本可以直接使用MY_PACKAGE_REPLACED
[Android] 使用广播接收器Braodcast Receiver 监听手机来电 去电 挂断的事
Braodcast Receiver顾名思义就是广播接收器,它和时间处理机制类似,但是事件处理机制是程序组件级别的(比如:按钮的单击事件),而广播事件处理机制是系统级别的。我们可以用Intent来启动一个组件,也可以用sendBroadcast()方法发起一个系统级别的事件广播来传递消息。我们同样可以在自己的应用程序中实现Broadcast Receiver来监听和响应广播的Intent。
Android学习Broadcast Receiver(广播接收者) 注意事项
一般去面试都可能会问到Android 的4大组件之一:Broadcast Receiver(广播) 那么面试中需要注意一些什么东西呢? 1. 什么是Broadcast Receiver (What)?  下面是Android Doc中关于BroadcastReceiver的概述: ①广播接收器是一个专注于接收广播通知信息,并做出对应处理的组件。很多广播是源自于系统代码的──比如
androidの亮屏,灭屏,解锁广播使用
androidの亮屏,灭屏,解锁广播使用 1. 亮屏广播的接收 不需要添加权限那些,我在xml 中配置action 都是不生效的,没有接收到广播。 //亮屏监听 private BroadcastReceiver receiver = new BroadcastReceiver() { @Override public void onReceive(Context context,
Android 无法接收开机广播的问题(SD卡)
版权声明:本文为博主原创文章,未经博主允许不得转载。 Android手机开机后,会发送android.intent.action.BOOT_COMPLETED广播监听这个广播就能监听开机。 一般的步骤如下: 1、注册广播 [html] view plain copy print? receiver andr
android广播监听手机通话状态
import android.app.Service; import android.content.BroadcastReceiver; import android.content.Context; import android.content.Intent; import android.telephony.PhoneStateListener; import android.telepho
Android静态注册的屏幕开启和屏幕关闭的广播捕捉不到的原因
今天进行了手机屏幕亮屏、暗屏、屏幕开锁、WIFI和移动网络状态改变、开机等广播的功能实现,其中遇到了一个问题,就是无论如何,屏幕亮屏、暗屏的广播都接收不到。这是因为我在AndroidManifest.xml采用了静态 注册的缘故。事实上,对应屏幕亮屏、暗屏的广播,必须通过代码动态注册 才可以获取到广播,这是系统做出的限制。 实例代码见第一代码原创文章http://www.diyidaima.com
android收不到开机广播
-
BroadcastReceiver(一)在AndroidManifest.xml中配置的广播接收器(自动注册注销)
@mipma
Android广播接收 BroadcastReceiver监听系统全局的Broadcast消息
什么是BroadcastReceiver? BroadcastReceiver,广播接收者,它是一个系统全局的监听器,用于监听系统全局的Broadcast消息,所以它可以很方便的 进行系统组件之间的通信。 (了解的可以直接跳过) 1.BroadcastReceiver虽然是一个监听器,但是它和之前用到的OnXxxListener不同,那些只是程序级别的监听器,运行在 指定程序
[Android]解决OPPO R9无法监听短信问题
原理: 监听了一下OPPO手机的广播管理类,发现OPPO擅自改了API。 解决方案:  在监听短信的地方加入这个action就可以了。 “android.provider.OppoSpeechAssist.SMS_RECEIVED” "android.provider.Telephony.SMS_RECEIVED" 系统原有的是这个
Android打开WLAN开关的广播状态监听
Android打开WLAN开关的广播状态监听Android中WLAN的广播监听的是WLAN状态的改变 ,Action是WifiManager.WIFI_STATE_CHANGED_ACTION,WLAN的状态系统定义了5种,分别是WIFI_STATE_DISABLED WLAN已经关闭 WIFI_STATE_DISABLING WLAN正在关闭 WIFI_STATE_ENABLED
android BroadcastReceiver 广播 onReceive()执行多次
功能:下载listView中点击的item数据,rnrnListView的activity中代码:rnrn@Overridernprotected void onListItemClick(ListView l, View v, int position, long id) rnMp3Info mp3Info = this.mp3Infos.get(position);rnIntent intent = new Intent();rnintent.putExtra("mp3Info", mp3Info);rnintent.setClass(this, DownLoadService.class);rnthis.startService(intent);rnreceiver=new MyReceiver();rnIntentFilter filter=new IntentFilter();rnfilter.addAction(ConstantVariable.DOWNLOADACTION);rnMp3ListActivity.this.registerReceiver(receiver,filter);rnsuper.onListItemClick(l, v, position, id);rnrnrnrnclass MyReceiver extends BroadcastReceiver rnrnrnpublic MyReceiver()rnrn//点几次listview,这里会执行几次rnrn@Overridernpublic void onReceive(Context arg0, Intent intent) rnBundle bundle=intent.getExtras();rnString resultString = bundle.getString("resultString");rnSystem.out.println(resultString);rnrnrnrnservice的代码:rnrn@Overridernpublic int onStartCommand(Intent intent, int flags, int startId) rnMp3Info mp3Info = (Mp3Info) intent.getSerializableExtra("mp3Info");rnDownLoadThread downLoadThread = new DownLoadThread(mp3Info);rnThread thread = new Thread(downLoadThread);rnthread.start();rnreturn super.onStartCommand(intent, flags, startId);rnrnrnrnclass DownLoadThread implements Runnable rnrnrnMp3Info mp3Info = null;rnrnrnpublic DownLoadThread(Mp3Info mp3Info) rnthis.mp3Info = mp3Info;rnrnrnrn@Overridernpublic void run() rnString mp3Url = "";rntry rnmp3Url = ConstantVariable.SERVER_URLrn+ URLEncoder.encode(mp3Info.getMp3Name(), "UTF-8");rn catch (UnsupportedEncodingException e) rne.printStackTrace();rnrnHttpDownloader httpDownloader = new HttpDownloader();rnint result = httpDownloader.downFile(mp3Url, "mp3/",rnmp3Info.getMp3Name());rnString resultsString = mp3Info.getMp3Name();rnif (result == -1) rnresultsString += ",下载失败.";rn else if (result == 0) rnresultsString += ",下载成功.";rn else if (result == 1)rnresultsString += ",文件已存在.";rnrnIntent intent=new Intent();rnintent.putExtra("resultString", resultsString);rnintent.setAction(ConstantVariable.DOWNLOADACTION);rnsendBroadcast(intent);rnrnrnandroidmanifest.xml注册servicernrnrn其他的辅助类就不贴代码了。大家知道为什么会这样吗?
Android Studio Service中接受广播消息 执行任务
Service demo如下:public class ServiceDemo extends Service { private AutoExceptMsgReceiver autoExcepMstReceiver; @Override public IBinder onBind(Intent arg0) {//这是Service必须要实现的方法,目前这里面...
android,自动回复短信
执行监听android广播,当有收到指定内容的短信后回复提前设定的内容
接收不到BOOT_COMPLETED广播
[DESCRIPTION] 自启动失败/接收不到BOOT_COMPLETED广播可能的原因:       [SOLUTION] (必现)        (1)、BOOT_COMPLETED对应的action和uses-permission没有一起添加              需要三方应用在AndroidManifest.xml中写入:
Android应用在未启动的情况下无法收到指定广播的问题总结
最近在做一个需求:程序没有桌面图标,安装后能够自动将其插件添加到Launcher上,也就是程序在未启动的情况下,能够完成一些操作。 能够想到的方案是在AndroidMainifest.xml中静态注册一个广播监听系统的某些广播达到触发应用完成操作的目的,但现象是:程序安装后,在未启动的情况下无法接收到系统的广播;但在启动一次后,就能够正常收到系统广播。 通过查阅资料发现,这个问题只有在And
Android基础:广播接收器及其生命周期介绍
广播接收器(Broadcast Receivers)只是接收广播并对广播信息做出作出反应,多数的广播是由系统代码发出的——比如反应时区变化的通知,电量低的通知,照了一张照片的通知,或者用户修改了系统语言的通知。应用程序也可以自己定义广播,比如定义这样一个广播,让其他的应用程序知道某些数据已经下载完毕了可以使用了。 应用程序可以有任意数量的广播接收器来对他所关心的广播进行监听并作出反应。所有的广播
Android-->电话广播监听
1:AndroidManifest.xml 注册广播
蓝牙通信,连接,扫描,打开,广播,绑定
1.首先获取本设备蓝牙的适配器(蓝牙的实例,主要的操作对象): BluetoothAdapter adapter =BluetoothAdapter.getDefaultAdapter(); 2.判断本设备是否支持蓝牙,如果支持,判断是否已经打开,若未打开则打开: if(adapter!=null){ if(!adapter.isEnabled()){
我们是很有底线的