Android 警报\u启动\u在某些手机中未收到,但在其他情况下效果良好
我正在从我的BroadCastReceiver接收警报\u BOOT\u COMPLETED来启动服务。这段代码在三星SII等手机上对我有效,但在索尼Xperia Neo等其他手机上不起作用。。任何人请告诉我在这里做什么。我有点卡住了 工作装置可能在3.1之前。如果我没记错的话,在3.1之后,Android 警报\u启动\u在某些手机中未收到,但在其他情况下效果良好,android,android-intent,Android,Android Intent,我正在从我的BroadCastReceiver接收警报\u BOOT\u COMPLETED来启动服务。这段代码在三星SII等手机上对我有效,但在索尼Xperia Neo等其他手机上不起作用。。任何人请告诉我在这里做什么。我有点卡住了 工作装置可能在3.1之前。如果我没记错的话,在3.1之后,BOOT_完成广播仅在用户第一次打开应用程序后处理 检查。我已在我的接收器中添加了清单和意图筛选器操作中的所有权限…我正在接收器的意图筛选器中使用这两个权限::android.intent.action.B
BOOT_完成
广播仅在用户第一次打开应用程序后处理
检查。我已在我的接收器中添加了清单和意图筛选器操作中的所有权限…我正在接收器的意图筛选器中使用这两个权限::android.intent.action.BOOT\u已完成,android.intent.action.action\u外部应用程序可用。此外,该代码适用于具有v4.0.1版本的三星SII,但不适用于具有v4.0.4版本的索尼xperio NEO和另一个具有v2.3.5版本的设备。。。我现在更糊涂了。。请帮忙!!我不确定我是否理解你的意思好吧,看起来这不是我刚才指出的问题。对不起,我帮不上忙:-(
public class AlertBootCompletedReceiver extends BroadcastReceiver {
private PackageManager pm;
private boolean isStoredExternally;
@Override
public void onReceive(Context context, Intent arg1) {
// TODO Auto-generated method stub
pm = context.getPackageManager();
try {
PackageInfo pi = pm.getPackageInfo(context.getPackageName(), 0);
ApplicationInfo ai = pi.applicationInfo;
isStoredExternally = (ai.flags & ApplicationInfo.FLAG_EXTERNAL_STORAGE) == ApplicationInfo.FLAG_EXTERNAL_STORAGE;
} catch (NameNotFoundException e) {
// do something
}
if (arg1.getAction().equals(Intent.ACTION_BOOT_COMPLETED)) {
if (!isStoredExternally) {
// I start a service here
}
}
if (arg1.getAction().equals(
Intent.ACTION_EXTERNAL_APPLICATIONS_AVAILABLE)
&& isStoredExternally) {
// I start a service here ..
}
}
}