安卓程序自启动的办法
2016-05-24 18:30
274 查看
千古文章一大抄,不过就是很少有个起作用的。
下面就是真正的 能够随系统启动的app的AndroidManifest.xml内容
其中关键代码在于
还有android:installLocation="internalOnly" 因为广播消息先于sd卡完成,所以,必须装在手机内存中。另外,安装之后的程序必须启动过一次!(再次更正:是必须启动后正常退出一次!在这里是:Director::getInstance()->end();)
然后要在项目目录下,以cocos项目为例
testqd\proj.android\src\org\cocos2dx\cpp 新建一个文件BootCompletedReceiver.java
其内容如下
然后打包,编译,运行就启动起来了。之前网上搜的一堆都不行,无奈google,凡是见到点不同的都加上去。。最后终于成功了。当然我也不知道之前少了哪里。要么没反应,要么弹出来个框 很抱歉 XXX停止运行。做个备份,造福后人
下面就是真正的 能够随系统启动的app的AndroidManifest.xml内容
<manifest xmlns:android="http://schemas.android.com/apk/res/android" package="org.cocos.testqd" android:versionCode="1" android:versionName="1.0" android:installLocation="internalOnly"> <uses-sdk android:minSdkVersion="9" /> <uses-feature android:glEsVersion="0x00020000" /> <application android:label="@string/app_name" android:icon="@drawable/icon"> <!-- Tell Cocos2dxActivity the name of our .so --> <meta-data android:name="android.app.lib_name" android:value="cocos2dcpp" /> <activity android:name="org.cocos2dx.cpp.AppActivity" android:label="@string/app_name" android:screenOrientation="landscape" android:theme="@android:style/Theme.NoTitleBar.Fullscreen" android:configChanges="orientation|keyboardHidden|screenSize"> <intent-filter> <action android:name="android.intent.action.MAIN" /> <category android:name="android.intent.category.LAUNCHER" /> </intent-filter> </activity> <receiver android:enabled="true" android:exported="true" android:name="org.cocos2dx.cpp.BootCompletedReceiver" android:permission="android.permission.RECEIVE_BOOT_COMPLETED"> <intent-filter> <action android:name="android.intent.action.BOOT_COMPLETED" /> <action android:name="android.intent.action.QUICKBOOT_POWERON" /> <category android:name="android.intent.category.DEFAULT" /> </intent-filter> </receiver> </application> <supports-screens android:anyDensity="true" android:smallScreens="true" android:normalScreens="true" android:largeScreens="true" android:xlargeScreens="true" /> <uses-permission android:name="android.permission.INTERNET" /> <uses-permission android:name="android.intent.action.BOOT_COMPLETED"></uses-permission> <uses-permission android:name="android.permission.RECEIVE_BOOT_COMPLETED"></uses-permission> </manifest>
其中关键代码在于
<uses-permission android:name="android.intent.action.BOOT_COMPLETED"></uses-permission> <uses-permission android:name="android.permission.RECEIVE_BOOT_COMPLETED"></uses-permission>以及
<receiver android:enabled="true" android:exported="true" android:name="org.cocos2dx.cpp.BootCompletedReceiver" android:permission="android.permission.RECEIVE_BOOT_COMPLETED"> <intent-filter> <action android:name="android.intent.action.BOOT_COMPLETED" /> <action android:name="android.intent.action.QUICKBOOT_POWERON" /> <category android:name="android.intent.category.DEFAULT" /> </intent-filter> </receiver>
还有android:installLocation="internalOnly" 因为广播消息先于sd卡完成,所以,必须装在手机内存中。另外,安装之后的程序必须启动过一次!(再次更正:是必须启动后正常退出一次!在这里是:Director::getInstance()->end();)
然后要在项目目录下,以cocos项目为例
testqd\proj.android\src\org\cocos2dx\cpp 新建一个文件BootCompletedReceiver.java
其内容如下
package org.cocos2dx.cpp; import android.content.BroadcastReceiver; import android.content.Context; import android.content.Intent; public class BootCompletedReceiver extends BroadcastReceiver { @Override public void onReceive(Context context, Intent intent) { if (intent.getAction().equals(Intent.ACTION_BOOT_COMPLETED)) { Intent newIntent = new Intent(context, AppActivity.class); newIntent.addFlags(Intent.FLAG_ACTIVITY_NEW_TASK); context.startActivity(newIntent); } } }
然后打包,编译,运行就启动起来了。之前网上搜的一堆都不行,无奈google,凡是见到点不同的都加上去。。最后终于成功了。当然我也不知道之前少了哪里。要么没反应,要么弹出来个框 很抱歉 XXX停止运行。做个备份,造福后人
相关文章推荐
- 使用C++实现JNI接口需要注意的事项
- Android IPC进程间通讯机制
- Android Manifest 用法
- [转载]Activity中ConfigChanges属性的用法
- Android之获取手机上的图片和视频缩略图thumbnails
- Android之使用Http协议实现文件上传功能
- Android学习笔记(二九):嵌入浏览器
- android string.xml文件中的整型和string型代替
- i-jetty环境搭配与编译
- android之定时器AlarmManager
- android wifi 无线调试
- Android Native 绘图方法
- Android java 与 javascript互访(相互调用)的方法例子
- android 代码实现控件之间的间距
- android FragmentPagerAdapter的“标准”配置
- Android"解决"onTouch和onClick的冲突问题
- android:installLocation简析
- android searchView的关闭事件
- SourceProvider.getJniDirectories