使用QT编写android程序,难免会需要调用JAVA代码,具体调用方式见 http://blog.csdn.net/foruok/article/details/39291273
如果想在此情况下再实现自启动,除了增加BroadcastReceiver响应设备启动事件以及相应的权限外
<receiver android:enabled="true" android:name="an.qt.useJar.BootBroadcastReceiver" android:permission="android.permission.RECEIVE_BOOT_COMPLETED">
<intent-filter>
<action android:name="android.intent.action.BOOT_COMPLETED"/>
<category android:name="android.intent.category.HOME"/>
</intent-filter>
</receiver>
<uses-permission android:name="android.permission.RECEIVE_BOOT_COMPLETED"/>
注意在BroadcastReceiver中
public class BootBroadcastReceiver extends BroadcastReceiver
{
@Override
public void onReceive(Context context, Intent intent)
{
Intent boot = new Intent(context, ExtendsQtWithJava.class);
boot.addFlags(Intent.FLAG_ACTIVITY_NEW_TASK);
context.startActivity(boot);
}
}
以上代码红色部分,ExtendsQtWithJava是提供给QT调用的JAVA代码,它基础于org.qtproject.qt5.android.bindings.QtActivity
所以直接使用该类启动应用即可,很简单但很容易被忽视