现在的位置: 首页 > 综合 > 正文

关于安卓手机开机自启动APP无法成功的问题

2018年04月05日 ⁄ 综合 ⁄ 共 1675字 ⁄ 字号 评论关闭

最近有个小项目需要实现开机自动启动手机中预装的APP,网上搜了一下,好多,简单看了看,觉得好easy,但是本着多动动手的原则,我还是想尝试一下,于是照着网上热心网友的经验简单的做一个测试一下。还是先来温习一下吧啊,安卓手机启动的时候会发出一个系统广播,广播内容为ACTIN_BOOT_COMPLETED,其字符串常量为android.intent.action.BOOT_COMPLETED,,只要接受到这个广播在启动你想启动的APP就行了,当然Service也行。1.通过广播接受消息

import android.content.BroadcastReceiver;
import android.content.Context;
import android.content.Intent;
public class BootBroadcastReceiver extends BroadcastReceiver { 
static final String action_boot="android.intent.action.BOOT_COMPLETED"; 

@Override 
public void onReceive(Context context, Intent intent) 

if (intent.getAction().equals(action_boot))

Intent StartIntent=new Intent(context,MainActivity.class); //接收到广播后,跳转到MainActivity ,即是想启动的APP或Service
StartIntent.addFlags(Intent.FLAG_ACTIVITY_NEW_TASK); 
context.startActivity(StartIntent); 


2.配置mainfest.xml文件,注册receiver

        <!-- 注册系统广播接收器 --> 
<receiver android:enabled="true"  android:name=".BootBroadcastReceiver" 
     android:permission="android.permission.RECEIVE_BOOT_COMPLETED"> 
<intent-filter>   
<action android:name="android.intent.action.BOOT_COMPLETED"/> 
<category android:name="android.intent.category.DEFAULT" /> 
</intent-filter> 

</receiver> 

3.添加权限

 <uses-permission android:name="android.permission.RECEIVE_BOOT_COMPLETED"></uses-permission>  

注意添加的位置包括权限设置和注册广播接收器!

不错,网上也是这样写的,但是装到手机中然后重新启动手机,遗憾是没有出现预想 的结果,以为是自己的那些程序写错了,所以干脆就直接复制粘贴上去,但是还是不行;有怀疑是注册广播接收器的属性错了,又在网上找了好多属性,补上了,但是还是不行!然后没得办法,上了一个技术讨论群,讨论指导的也就是上面那几步是不是有问题罗,还有就是说我手机是小米的,估计把启动项关了,于是半信半疑的看了下,把启动项也设置好了,但是还是不行!然后有人说是小米手机吧系统改了好多,所以测试不靠谱,于是换了华为的,还是不行,于是就换上了高大上的机皇三星,可是依然不行,就在我准备绝望的时候,发现原来是因为自己新建BroadcastReceiver的到时候默认建了一个包,并吧该java文件放到该包里,和我要启动的那个java文件不在一个包里,于是果断的拖过去了,一运行,一切都ok!实现了开机启动功能!哎,折腾了我两个半天啊,坑死了!简单记录下就是给自己提个醒,也希望对以后碰到相同问题的网友有帮助!谢谢浏览!

抱歉!评论已关闭.