开机可以自行启动的android应用 Android开机启动Activity或者Service方法4.0以后的系统,需要apk至少有一个activity,你把apk安装上去了以后,手动运行一次。以后就可以开机启动了。 解决方案 » 免费领取超大流量手机卡,每月29元包185G流量+100分钟通话, 中国电信官方发货 楼主,这个问题我研究了一阵子,最后发现如果是三方应用没有系统权限的话,无解。原因如下:谷歌为了安全考虑(避免流氓软件、病毒啊干坏事,还能提高效率),4.0以后加了2个Flag:FLAG_INCLUDE_STOPPED_PACKAGES和FLAG_EXCLUDE_STOPPED_PACKAGES。系统发出的广播带有FLAG_EXCLUDE_STOPPED_PACKAGES这个flag,在应用进程没有启动的情况下是不能接收到的。当然如果是用户自定义的广播可以带有FLAG_INCLUDE_STOPPED_PACKAGES这个flag,那么即使应用没启动也可以收到广播(很遗憾啊!只能是三方自定义的广播)。由于开机的时候,进程还没有启动,所以根本收不到ACTION_BOOT_COMPLETED等系统发出的广播。最后只能遗憾的告诉楼主,没办法! 如果用户的手机是已经root过的,你可以通过申请root权限,在第一次安装的时候,申请到root之后,你就可以用Linux的命令来操作了,这时候你可以把你的应用升级成系统应用...不仅用户不能再卸载了,然后你想干这种开机启动的话,就service就行 加个<uses-permission android:name="android.permission.RECEIVE_BOOT_COMPLETED" />的权限,然后开机收到广播以后开启service 其实用广播就可以实现,创建一个开机启动的类,继承BroadcastReceiver,在用INTENT来启动。上代码public class StartRecevier extends BroadcastReceiver { @Override public void onReceive(Context context, Intent intent) { // TODO Auto-generated method stub Intent intent2 = new Intent(context,Main.class); intent2.setFlags(Intent.FLAG_ACTIVITY_NEW_TASK); context.startActivity(intent2); Log.d("boot_________!", "开机自启动"); }} Java如何测试Int, char, boolean的字节数? 提问界面的设计 有没有开发过电子书的?介绍点经验! 修改Android源码导致的找不到符号的问题 初学者求C++编写的软件如何移植到android手机上?? Handler和Activity跳转的问题 现成中更新TextView的状态,报错,求解! findViewById(R.id.main)何时能使用? ubuntu 12.04 编译 android vlc 的问题 安卓开发序列化接口引用context会导致内存泄漏吗 求助,有关超级课程表和课程格子的布局 新手开发tabhost的时候求助
原因如下:
谷歌为了安全考虑(避免流氓软件、病毒啊干坏事,还能提高效率),4.0以后加了2个Flag:FLAG_INCLUDE_STOPPED_PACKAGES和FLAG_EXCLUDE_STOPPED_PACKAGES。系统发出的广播带有FLAG_EXCLUDE_STOPPED_PACKAGES这个flag,在应用进程没有启动的情况下是不能接收到的。
当然如果是用户自定义的广播可以带有FLAG_INCLUDE_STOPPED_PACKAGES这个flag,那么即使应用没启动也可以收到广播(很遗憾啊!只能是三方自定义的广播)。
由于开机的时候,进程还没有启动,所以根本收不到ACTION_BOOT_COMPLETED等系统发出的广播。
最后只能遗憾的告诉楼主,没办法!
public void onReceive(Context context, Intent intent) {
// TODO Auto-generated method stub
Intent intent2 = new Intent(context,Main.class);
intent2.setFlags(Intent.FLAG_ACTIVITY_NEW_TASK);
context.startActivity(intent2);
Log.d("boot_________!", "开机自启动");
}}