Поскольку я хочу обновлять местоположение на сервере каждые две минуты, поэтому я добавил класс обслуживания в Android, при перезапуске мобильного телефона я вызываю широковещательный приемник, используя boot_completed. Но этот приемник не вызывает, даже когда мое устройство перезапускается или я открыл приложение в тот раз, и я не получил.
Поскольку функция AUTO-START отключена, поэтому она не идет. Как включить программно в Android, например, включить всплывающее окно gps так же, как это.
Код: если я даю так, он открывает разрешение на автоматическую стартовую страницу вместо того, чтобы вручную показывать, как его включить. Пожалуйста, помогите мне. Этот код каждый раз, когда приложение открывается, означает, что он появляется, хотя он и включен.
if(Build.BRAND.equalsIgnoreCase("xiaomi") ){
Intent intent = new Intent();
intent.setComponent(new ComponentName("com.miui.securitycenter", "com.miui.permcenter.autostart.AutoStartManagementActivity"));
startActivity(intent);
}else if(Build.BRAND.equalsIgnoreCase("Letv")){
Intent intent = new Intent();
intent.setComponent(new ComponentName("com.letv.android.letvsafe", "com.letv.android.letvsafe.AutobootManageActivity"));
startActivity(intent);
}
else if(Build.BRAND.equalsIgnoreCase("Honor")){
Intent intent = new Intent();
intent.setComponent(new ComponentName("com.huawei.systemmanager", "com.huawei.systemmanager.optimize.process.ProtectActivity"));
startActivity(intent);
}
public class BootCompletedIntentReceiver extends BroadcastReceiver {
PendingIntent pintent;
@Override
public void onReceive(Context context, Intent intent) {
Toast.makeText(context, "boot"+intent.getAction(), Toast.LENGTH_SHORT).show();
Log.i("QQ","boot"+intent.getAction());
if ("android.intent.action.BOOT_COMPLETED".equals(intent.getAction())) {
Intent pushIntent = new Intent(context, ForegroundLocationService.class);
context.startService(pushIntent);
/*
Calendar cal = Calendar.getInstance();
intent = new Intent(context, ForegroundLocationService.class);
pintent = PendingIntent
.getService(context, 0, intent, 0);
Log.i("QQ","else--less than oreo"+pintent);
AlarmManager alarm = (AlarmManager)context. getSystemService(Context.ALARM_SERVICE);
// Start service every 20 seconds
alarm.setRepeating(AlarmManager.RTC_WAKEUP, cal.getTimeInMillis(),
5* 1000, pintent);*/
}
}
}
Manifest:
<uses-permission android:name="android.permission.RECEIVE_BOOT_COMPLETED" />
<receiver android:enabled="true"
android:directBootAware="true"
android:exported="true" android:name=".background_services.BootCompletedIntentReceiver">
<intent-filter>
<action android:name="android.intent.action.BOOT_COMPLETED" />
<category android:name="android.intent.category.DEFAULT" />
<action android:name="android.intent.action.QUICKBOOT_POWERON"/>
<action android:name="android.intent.action.LOCKED_BOOT_COMPLETED" />
</intent-filter>
<meta-data android:name="enable" android:value="true"/>
<meta-data android:name="bootType" android:value="restart"/>
<meta-data android:name="sendToBack" android:value="true"/>
</receiver>