1

我一直在为 HTC Desire HD(Android 2.2)上的客户端开发一个 android 应用程序,该应用程序利用 BOOT_COMPLETED 操作自动启动手机上的应用程序启动。这一切都在 HTC 上运行良好。

然而,客户说,他想要运行应用程序的手机是 Alcatel onetouch|983 (Android 2.3.7)。

我已在此手机上安装了该应用程序,但是当我重新启动设备时,该应用程序将无法启动。

在阿尔卡特上调试时,我可以使用 adb shell 触发 BOOT_COMPLETED 操作,并且接收器类可以很好地识别该操作并触发相应的代码。但是当手机启动时它永远不会触发。

我的 XML 清单

<receiver android:name=".FloReceiver"
            android:enabled="true" >
            <intent-filter android:priority="999" >

                <!-- higher priority than native messaging app -->
                <action android:name="android.intent.action.USER_PRESENT" />
                <action android:name="android.provider.Telephony.SMS_RECEIVED" />
                <action android:name="android.intent.action.BOOT_COMPLETED" />
            </intent-filter>
        </receiver>

我的接收者班

public class FloReceiver extends BroadcastReceiver 
{
    public static final String SMS_RECEIVED ="android.provider.Telephony.SMS_RECEIVED";
    public static final String BOOT_COMPLETE = "android.intent.action.BOOT_COMPLETED";

    @Override
    public void onReceive(Context context, Intent intent) 
    {
            if (BOOT_COMPLETE.equals(intent.getAction()))
        {
            Activity_PinEntry.ShowScreenLock(context);
            context.startService(new Intent(context, ReceiverService.class));
        }
        }
}

任何建议/帮助将不胜感激,我真的在这里摸不着头脑。

在此先感谢,亚当。

4

1 回答 1

0

我有同样的问题。我通过将应用程序转移到手机而不是 SD 存储卡来解决它。即使您将安装目录定义为电话,阿尔卡特总是将应用程序安装到 SD 卡中。

于 2013-09-13T11:13:38.880 回答