转载请标明原创地址哟。
PS:Android4.0以上的版本应该要开一次后才能自启动 不过自启动要等Android系统大致初始化完毕即出现桌面后要等几十秒才自启动
原理:当Android启动时,会发出一个系统广播,内容为ACTION_BOOT_COMPLETED,它的字 符串常量表示为 android.intent.action.BOOT_COMPLETED。 只要在程序中“捕捉”到这个消息,再启动程序入口之即可。 我们要做的是做好接收这个消息的准备,而实现的手段就是实现一个BroadcastReceiver类
package org.qtproject.example;
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,org.qtproject.qt5.android.bindings.QtActivity.class); //接收到广播后,跳转到MainActivity
StartIntent.addFlags(Intent.FLAG_ACTIVITY_NEW_TASK);
context.startActivity(StartIntent);
}
}
}
org.qtproject.qt5.android.bindings.QtActivity.class QtActivity是Qt on Android程序的入口所以就启动他,这个文件应该是保存在Qt里面的,当你编译Android项目时它就会拷贝到指定文件夹中在编译后产生的文件夹中可以找到
AndroidMainfest.xml设置
接下来修改xml文档 添加如下代码
在结束标签之后在结束标签之前
完整xml文档
android:name="org.qtproject.qt5.android.bindings.QtActivity"
android:label="-- %%INSERT_APP_NAME%% --"
android:screenOrientation="unspecified"
android:launchMode="singleTop">