Qt android 无法收听操作系统意图 ex.RECEIVE_BOOT_COMPLETED



我有一个在打开应用程序时运行的Android服务,现在我希望我的Android服务在启动时运行。我尝试了波纹管代码,但是当我重新启动设备时,该服务不会自动运行。我看不到它在手机上作为服务运行!我的代码中有问题吗?

我将这些权限添加到清单中:

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

这是我在清单中的接收器:

<receiver android:name="org.qtproject.example.MyBroadcastReceiver">
  <intent-filter>
  <action android:name="android.intent.action.RECEIVE_BOOT_COMPLETED"/>
  <action android:name="android.intent.action.RECEIVE_HEADSET_PLUG"/>
  </intent-filter>
 </receiver>

这是mybroadcastreceiver.java:

import android.os.Bundle;
import org.qtproject.qt5.android.bindings.QtActivity;
import android.content.BroadcastReceiver;
import android.content.Context;
import android.content.Intent;
public class MyBroadcastReceiver extends BroadcastReceiver {
    @Override
    public void onReceive(Context context, Intent intent) {
        Intent startServiceIntent = new Intent(context, org.qtproject.example.MyCustomAppService.class);
        context.startService(startServiceIntent);
    }
}

替换 <action android:name="android.intent.action.RECEIVE_BOOT_COMPLETED"/><action android:name="android.intent.action.BOOT_COMPLETED"/>在清单

好的,所以我在代码中遇到了2个问题:

1(感谢@kajay,我不得不如他描述的那样改变我的动作线成为: 清单中的<action android:name="android.intent.action.BOOT_COMPLETED"/>

2(我缺少在mybroadcastreceiver.java中定义软件包。因此,班级找不到StarterViceIntent。当然,QT不会出现任何Java问题的错误或警告。因此,就我而言,我必须将其添加到mybroadcastreceiver.java:

package org.qtproject.example;

我必须执行以上两个步骤来解决我的问题!P.S有时该服务在启动后需要大约45秒或以上才能开始!

相关内容

  • 没有找到相关文章

最新更新