BOOT_COMPLETED操作适用于一台设备但不适用于另一台设备

时间:2013-07-24 11:00:20

标签: android broadcastreceiver bootcompleted

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

然而,客户已经说过,他想申请运行的手机是阿尔卡特onetouch | 983(Android 2.3.7)。

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

在Alcatel上调试时,我可以使用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));
        }
        }
}

任何建议/帮助都会受到赞赏,我真的在这里摸不着头脑。

提前谢谢,亚当。

1 个答案:

答案 0 :(得分:0)

我遇到了同样的问题。我通过将应用程序转移到电话而不是SD存储卡来解决它。即使您将安装目录定义为电话,阿尔卡特也始终在SD卡上安装应用程序。