当前位置:编程学习 > wap >>

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");
}
}

}
  --------------------编程问答-------------------- 没看出什么问题啊,
换个机子试试看好了 --------------------编程问答--------------------
引用 1 楼 aotian16 的回复:
没看出什么问题啊,
换个机子试试看好了

是的, 我换了两台4.2的机子都没启动不起来 --------------------编程问答-------------------- 在receiver里面加上这个试试呢
android:priority="999" --------------------编程问答--------------------
引用 3 楼 hotkarriver 的回复:
在receiver里面加上这个试试呢
android:priority="999"

试了一下,还是不行, 我猜这个应该不是优先级问题,是不是4.2开机不发广播了或者权限变动什么的, 有没有这个可能性呢? --------------------编程问答-------------------- 你有没有在4.0上进行一下测试呢? --------------------编程问答--------------------
引用 5 楼 f839903061 的回复:
你有没有在4.0上进行一下测试呢?

试了一下, 我这里没有4.0的真机,我用4.0的模拟器是可以的。 现在只是4.2不执行开机启动 --------------------编程问答-------------------- 应该不会啊,4.2没有取消开机广播,再检查下代码或者新写一个简单的测试程序。看看问题在哪儿。 --------------------编程问答-------------------- 模拟器上4.2的也可以 ,真机上始终启动不起来。  --------------------编程问答-------------------- 国产的机子基本上都改过Android系统的源码,so~ --------------------编程问答--------------------
引用 9 楼 Tibib 的回复:
国产的机子基本上都改过Android系统的源码,so~
哪有没有其它方式 的广播来获取开机必走的流程呢 ?比如说像读到sim卡,网络可用之类的  --------------------编程问答--------------------
引用 7 楼 haierjodn 的回复:
应该不会啊,4.2没有取消开机广播,再检查下代码或者新写一个简单的测试程序。看看问题在哪儿。
我写了好几个demo,都不行。 在模拟器上是可以的, --------------------编程问答--------------------
引用 4 楼 scliu0718 的回复:
Quote: 引用 3 楼 hotkarriver 的回复:

在receiver里面加上这个试试呢
android:priority="999"

试了一下,还是不行, 我猜这个应该不是优先级问题,是不是4.2开机不发广播了或者权限变动什么的, 有没有这个可能性呢?

一样的代码,在不同的system上运行结果不同,应该是机器改过相关代码 --------------------编程问答-------------------- 楼主玩的啥手机啊。。。。。。。。 --------------------编程问答-------------------- LZ  让老夫解救你吧
 android.permission.RECEIVE_BOOT_COMPLETED需要应用有system权限
所以   将应用push到syste/app下 --------------------编程问答--------------------
引用 13 楼 fangext520 的回复:
楼主玩的啥手机啊。。。。。。。。

我只测过夏新和google的nexus 4 都有同样问题。 现在解决了 --------------------编程问答--------------------
引用 14 楼 tanwei4199 的回复:
LZ  让老夫解救你吧
 android.permission.RECEIVE_BOOT_COMPLETED需要应用有system权限
所以   将应用push到syste/app下

这样子的话总不能让用户也去Push吧 --------------------编程问答-------------------- 我多注册了其它的权限来解决这个的, 如果在其它手机上也就多发几次广播就是了,重复发也无所谓。


但现在不知道是什么原因导致的收不到开机广播?如果大家知道的可以讨论一下 --------------------编程问答--------------------
引用 16 楼 scliu0718 的回复:
Quote: 引用 14 楼 tanwei4199 的回复:

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
CopyRight © 2012 站长网 编程知识问答 www.zzzyk.com All Rights Reserved
部份技术文章来自网络,