2016-01-18 70 views
3

我已经创建了一个Android应用程序,该应用程序应该在启动后启动服务。 它在Nexus 5手机上工作得很好,但我无法使它在华为平板电脑(Mediapad X2)上工作。我正在使用Android 5.0/API 21.BOOT_COMPLETED没有收到

根据指南,清单具有适当的权限/意图。

<uses-permission android:name="android.permission.RECEIVE_BOOT_COMPLETED" /> 
<uses-permission android:name="android.permission.WAKE_LOCK"/> 

    <receiver 
     android:name=".BootBroadcast" 
     android:enabled="true" 
     android:exported="true" 
     android:label="BootReceiver"> 
     <intent-filter> 
      <action android:name="android.intent.action.BOOT_COMPLETED" /> 
      <action android:name="android.intent.action.QUICKBOOT_POWERON"/> 
     </intent-filter> 
    </receiver> 

我SO搜索类似问题(BOOT_COMPLETED not working Android),并添加了QUICKBOOT_POWERON意图,还有WAKE_LOCK权限,但一切都没有改变。

广播接收器刚刚开始服务

public class BootBroadcast extends BroadcastReceiver { 

private static final String TAG = "GrandUnion-Boot"; 

@Override 
public void onReceive(Context context, Intent intent) { 

    Log.e(TAG, "Boot_Completed RECEIVED"); 
    try{ 
     context.startService(new Intent(context,MyService.class)); 
     Log.i(TAG, "Boot Completed - start service"); 
    }catch(Exception e){ 
     Log.e(TAG,e.toString()); 
    } 

} 
} 
+0

可能重复与http://stackoverflow.com/questions/24882861/android-intent-action-boot-completed-intent-is-not-received-at-restart-or-reb – KostasC

+0

我不认为它因为OP说他还加了Quickboot ..... – Opiatefuchs

+0

你有没有尝试在'intent-filter'中加入''? – Knossos

回答

1

长期研究我发现后,一些设备有自己的启动管理器。而华为MediaPad的其中之一,所以:

  1. 转到设备的设置
  2. 查找启动管理器
  3. 允许应用程序启动。
+0

嗨,感谢您提供此信息,但该设备没有启动管理器。我有一个“电话管理器”,但它没有启动/启动选项。 – Konstantinos

+0

@Konstantinos我的测试设备是华为MediaPad X1。问题是完全一样的。所以你的设置可能不同。有没有提供任何选项,当你的安装应用程序直接通过apk?在这种情况下,MediaPad1显示允许自动启动的选项。 –

+0

我有10个华为mediapad 2. 10个作品中有7个。但其他3不。怎么可能 ? – MrG

0

如果您的设备没有启动/启动管理器,请尝试检查应用程序管理器。在联想的VibeUI上,应用程序管理器有一个选项“限制启动”,启用时防止应用程序接收BOOT_COMPLETED意图。