Android4.2开机启动问题 , 纠结~~~~~~~~~~~~~~~~~~~·
在网上看过很多Android 开机启动服务的例子, 不外乎用广播,注册Action为开机启动,在onReceive中去做自己想做的事。而在3.0以上可能需要一个权限android.permission.RECEIVE_BOOT_COMPLETED,并且需要启动一次应用,这个合情合理。
但是在当前遇到了一个问题,在2.2-4.2的每个版本中都测试过,唯独4.2.1接收不到广播(其它的包括4.1的都可以),程序也启动过。但是还是不行,请有遇到过这个问题的提示一下。 万分感谢!!!!
主要代码帖出来:
权限: <uses-permission android:name="android.permission.RECEIVE_BOOT_COMPLETED" />
注册:
<receiver android:name="com.android.pn.receiver.ShutupBroadCastReceiver" >
<intent-filter>
<action android:name="android.intent.action.BOOT_COMPLETED" />
</intent-filter>
<intent-filter>
<action android:name="com.android.pn.ShutupBroadcastReceiver"/>
</intent-filter>
</receiver>
代码:
public class ShutupBroadCastReceiver extends BroadcastReceiver {
public void onReceive(Context arg0, Intent arg1) {
Log.e("sys", "广播启动服务了");
if(arg1.getAction().equals("com.android.pn.ShutupBroadcastReceiver")){
Log.e("sys", "open from 程序");
}
else if(arg1.getAction().equals("android.intent.action.BOOT_COMPLETED")){
Log.e("sys", "open from Boot Start");
}
}
}
--------------------编程问答-------------------- 没看出什么问题啊,
换个机子试试看好了 --------------------编程问答--------------------
是的, 我换了两台4.2的机子都没启动不起来 --------------------编程问答-------------------- 在receiver里面加上这个试试呢
android:priority="999" --------------------编程问答--------------------
试了一下,还是不行, 我猜这个应该不是优先级问题,是不是4.2开机不发广播了或者权限变动什么的, 有没有这个可能性呢? --------------------编程问答-------------------- 你有没有在4.0上进行一下测试呢? --------------------编程问答--------------------
试了一下, 我这里没有4.0的真机,我用4.0的模拟器是可以的。 现在只是4.2不执行开机启动 --------------------编程问答-------------------- 应该不会啊,4.2没有取消开机广播,再检查下代码或者新写一个简单的测试程序。看看问题在哪儿。 --------------------编程问答-------------------- 模拟器上4.2的也可以 ,真机上始终启动不起来。 --------------------编程问答-------------------- 国产的机子基本上都改过Android系统的源码,so~ --------------------编程问答-------------------- 哪有没有其它方式 的广播来获取开机必走的流程呢 ?比如说像读到sim卡,网络可用之类的 --------------------编程问答-------------------- 我写了好几个demo,都不行。 在模拟器上是可以的, --------------------编程问答--------------------
一样的代码,在不同的system上运行结果不同,应该是机器改过相关代码 --------------------编程问答-------------------- 楼主玩的啥手机啊。。。。。。。。 --------------------编程问答-------------------- LZ 让老夫解救你吧
android.permission.RECEIVE_BOOT_COMPLETED需要应用有system权限
所以 将应用push到syste/app下 --------------------编程问答--------------------
楼主玩的啥手机啊。。。。。。。。
我只测过夏新和google的nexus 4 都有同样问题。 现在解决了 --------------------编程问答--------------------
LZ 让老夫解救你吧
android.permission.RECEIVE_BOOT_COMPLETED需要应用有system权限
所以 将应用push到syste/app下
这样子的话总不能让用户也去Push吧 --------------------编程问答-------------------- 我多注册了其它的权限来解决这个的, 如果在其它手机上也就多发几次广播就是了,重复发也无所谓。
但现在不知道是什么原因导致的收不到开机广播?如果大家知道的可以讨论一下 --------------------编程问答--------------------
LZ 让老夫解救你吧
android.permission.RECEIVE_BOOT_COMPLETED需要应用有system权限
所以 将应用push到syste/app下
这样子的话总不能让用户也去Push吧
没办法 android也要为用户负责 不然随便个应用都开机启动 用户怎么办? --------------------编程问答-------------------- 我也遇到了同样的问题,我4.0和 4.1的真机都没问题,但是4.2.1的就不行了,但是联想的一个安全软件检测到了我的应用时开机启动项,我没禁止,死活起不来 --------------------编程问答-------------------- lz解决了么?求解决方案啊 --------------------编程问答-------------------- lz解决了么?求解决方案啊 --------------------编程问答-------------------- 已解决,多谢各位! --------------------编程问答-------------------- 参考 http://blog.csdn.net/sgz_china/article/details/17503277 --------------------编程问答-------------------- 参考http://blog.csdn.net/sgz_china/article/details/17503277 --------------------编程问答-------------------- 这个问题表示关注。
补充:移动开发 , Android