2016-01-18 2 views
3

Я пишу небольшое приложение для Android, которое запускает мой сервис при загрузке устройства. Приложение отлично работает на всех мобильных телефонах с версиями Android 4.4.2 (Mi Note 4G, должны разрешать разрешения в своем приложении безопасности), 5.0 (Lenovo K3 Note), 5.1 (One Plus One), 6 (Nexus 5), кроме на одном мобильном устройстве под управлением Android 5.0 (Lenovo A1000, Launcher похожа на MiUI). Приложения устанавливаются только для межсетевого хранилища. Используется/Запустил приложение один раз перед перезагрузкой устройства. Вот выдержки из манифеста и широковещательных файлов приемникаAndroid BOOT_COMPLETED событие не запускается

manifest.xml:

<receiver android:name="com.company.Broadcast"
  android:permission="android.permission.RECEIVE_BOOT_COMPLETED">
  
     <intent-filter>
  
      <action android:name="android.intent.action.BOOT_COMPLETED" />
  
      <category android:name="android.intent.category.LAUNCHER" />
  
     </intent-filter>
  
    </receiver> 
    
 <service android:enabled="true" android:exported="false" android:name="com.company.service" /> 

радиовещательный приемник:

public class Broadcast extends BroadcastReceiver {
  
     private static final String TAG = “BroadcastReceiver";
  
     @Override
  
     public void onReceive(Context context, Intent intent) {
  
      Log.d(TAG, "onReceive");
  
      Intent service = new Intent(context, Service.class);
  
      service.setFlags(Intent.FLAG_INCLUDE_STOPPED_PACKAGES);
  
      context.startService(service); 
     
 }
  
    
 } 

Некоторые предварительно установленные приложения начинают нормально при загрузке и некоторые из них пропускаются. Мое приложение оказалось в списке пропущенных приложений.

Вот некоторые строки из LogCat при загрузке устройства,

01-18 17:02:58.933 504-560/? I/PackageManager: Package com.android.deskclock checking android.permission.RECEIVE_BOOT_COMPLETED: BasePermission{183dc63c android.permission.RECEIVE_BOOT_COMPLETED} 
01-18 17:02:58.933 504-560/? I/PackageManager: Package com.android.deskclock granting android.permission.RECEIVE_BOOT_COMPLETED 
01-18 17:02:58.933 504-560/? I/PackageManager: Package com.android.mms.service checking android.permission.RECEIVE_BOOT_COMPLETED: BasePermission{183dc63c android.permission.RECEIVE_BOOT_COMPLETED} 
01-18 17:02:58.933 504-560/? I/PackageManager: Package com.android.mms.service granting android.permission.RECEIVE_BOOT_COMPLETED 

Пропущенные пакет комментариев:

01-18 17:03:06.235 504-529/? D/ActivityManager: send broadcast: android.intent.action.BOOT_COMPLETED, skip package: com.google.android.gm 
01-18 17:03:06.235 504-529/? D/ActivityManager: send broadcast: 

> android.intent.action.BOOT_COMPLETED, skip package: com.company 

01-18 17:03:06.235 504-529/? D/ActivityManager: send broadcast: android.intent.action.BOOT_COMPLETED, skip package: com.frozendevs.cache.cleaner 

я бы пропустил некоторый кусок кода, чтобы заставить его работать. Любые комментарии/предложения помогли бы мне больше продолжить работу.

+0

У вас также есть проблемы с Lenovo A1000. – Deinlandel

+0

у вас есть решение для Lenovo A1000? – Saveen

+0

@Saveen No. Перемещено и начал использовать другой мобильный телефон для создания моего приложения. – Naresh

ответ

2

Проблема с устройством. некоторые устройства позволяют внутренним приложениям получать это действие.

Вы можете добавить это к вашему умысел фильтра, как работа вокруг

<action android:name="android.intent.action.USER_PRESENT" /> 

Это срабатывает после того как пользователь разблокирует устройство.

 Смежные вопросы

  • Нет связанных вопросов^_^