BroadcastReceiver получает BOOT_COMPLETED на устройствах Samsung, LG, но не на Lenovo K5 PLUS
Ниже приведен код: -
AndroidManifest.xml
<receiver
android:name=".BootReceiver"
android:label="MintBootReceiver">
<intent-filter>
<action android:name="android.intent.action.ACTION_BOOT_COMPLETED" />
<action android:name="android.intent.action.BOOT_COMPLETED" />
<action android:name="android.intent.action.QUICKBOOT_POWERON" />
<action android:name="com.example.boot.boottest.START" />
</intent-filter>
</receiver>
BootReceiver.java
package com.example.mobilelock.mobilelock;
import android.content.BroadcastReceiver;
import android.content.Context;
import android.content.Intent;
import android.net.Uri;
import android.util.Log;
public class BootReceiver extends BroadcastReceiver{
@Override
public void onReceive(Context context, Intent intent) {
//d.passSuccess=0;
Log.d("Bootarecieved","yes");
context.startService(new Intent(context,PhoneLockService.class));
}
}
Я тестировал этот код на Samsung S7 и LG G3, и он работает на этих устройствах, но когда я запускаю этот код на мобильном устройстве LENOVO K5 PLUS, то цель фильтра загрузки не принимается и обслуживание не запускается. Любая помощь в этом будет оценена.
Спасибо
2 ответа
Это были некоторые ограничения разрешений на запуск мобильных устройств Lenovo. Когда разрешения были включены, проблема была решена.
LENOVO K5 Plus, он может BOOT_COMPLETE, установив телефон следующим образом:
Настройка-> Управление приложениями -> "YOUR_APP" -> снять флажок "Ограничить обед"
И изменить манифест в:
<action android:name="android.intent.action.BOOT_COMPLETED" />
<action android:name="android.intent.action.REBOOT"/>
<action android:name="android.intent.action.QUICKBOOT_POWERON" />
Большинство телефонов китайской компании ограничивают фоновый процесс вашего приложения. Вы должны на доступность из настроек вашего приложения и его работа в порядке.