【发布时间】:2016-12-24 01:01:40
【问题描述】:
我的小米红米 2 Prime 手机没有收到BOOT_COMPLETE 广播。
我的BroadcastReciever 是---
public class OnBootReceiver extends BroadcastReceiver {
@Override
public void onReceive(Context context, Intent intent) {
// Setting singleAlarm
SingleAlarmHandler.getInstance().setAlarm(context);
try {
// Sending System Setting broadcast
String offDate = SharedPrefrencesHandler.getInstance(context).readString(SharedPrefrencesConstants.SWITCH_OFF_DATE);
int type = SystemSettingsType.PHONE_SWITCH_ON_OFF.getNumericType();
if (offDate == null)
offDate = "";
SystemSettingsHandler.getSystemSettingsHandler().makeSystemSettingsCall(context, type, offDate);
SharedPrefrencesHandler.getInstance(context).removePrefrence(SharedPrefrencesConstants.SWITCH_OFF_DATE);
} catch (Exception e) {
Log.e(ChaseForceApplication.TAG, e.getMessage());
}
}
}
和清单:
<receiver
android:name=".broadcastlisteners.OnBootReceiver"
android:enabled="true"
android:exported="true">
<intent-filter>
<action android:name="android.intent.action.BOOT_COMPLETED" />
</intent-filter>
</receiver>
经许可:
<uses-permission android:name="android.permission.RECEIVE_BOOT_COMPLETED" />
现在我的小米红米 2 Prime 手机没有收到 BOOT COMPLETE 广播,因为没有设置闹钟。但在其他安卓手机上它工作正常。
我搜索了一下,发现是MIUI固件的问题。在此类移动设备中,它们提供了内置的安全应用程序,除非您在该安全应用程序中允许自动启动权限,否则您无法获得广播(任何通知)。
一旦您在该应用中检查了该权限,您就开始获得广播。
现在我的问题是:
如何以编程方式获取 MIUI Security 应用程序自动启动权限(手机如 Redmi)?
【问题讨论】:
-
你在说什么?显示您的代码。 (清单和你的接收者)
-
@xdevs23,感谢您的评论,现在我已经在广播接收器中添加了我的代码。手机,但它显示在其他手机,如 Moto e、Micromax android1 等......
-
嗨@ImranKhanSaifi。这是 MIUI Roms 中添加的安全功能。任何使用小米手机(带有 MIUI)的开发者都会知道这一点。我面临着同样的问题。我搜索了很多,但似乎 MIUI 家伙没有为开发人员提供任何 SDK 来访问权限管理器左右。如果您找到任何解决方案,请回复。
-
嗨@Mazhar,感谢您的回复...是的,你说得对。 Sequrity 应用程序是一个系统应用程序,因此我们无法对其进行任何控制,用户可以随时删除任何权限和通知(自动启动检查).....在我的应用程序中造成问题的另一件事是没有获取位置当应用程序未运行时..其背后的原因是另一个设置..在电池->管理应用程序电池使用情况->..默认情况下选择标准模式,当您的应用程序停止您的应用程序获取位置和使用网络没有运行..所以你还必须在选择应用选项中检查你的应用。
-
谁能提供通用的解决方案,让警报在不同制造的设备上正常工作?我要求在不同设备上提供所有解决方案。谢谢。