2015-10-18 62 views
0

我想在开始时使用android.intent.action.BOOT_COMPLETED来启动我的服务,但我没有在nexus 4中收到它的广播。它的三星手机工作正常。android.intent.action.BOOT_COMPLETED不适用于nexus 4

<receiver android:name=".BootReceiver"> 
    <intent-filter> 
     <action android:name="android.intent.action.BOOT_COMPLETED"/> 
    </intent-filter> 
</receiver> 

而且我已经给权限

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

接收文件:

public class BootReceiver extends BroadcastReceiver { 
    @Override 
    public void onReceive(Context context, Intent intent) { 
     Toast.makeText(context, "boot completed", Toast.LENGTH_SHORT).show(); 
     Log.d("Boot Completed", "Boot completed received"); 
    } 
} 

我无法接收BOOT_COMPLETED意图。

它与三星模型的工作良好,但不适用于NEXUS 4. 我使用ANDROID STUDIO。 请帮助。

+0

您从您的第一个接收器标记 – JAPK

+0

的末尾缺少'>'它的不精确的代码伙伴。它的确在那里。相同的apk与samsung一起工作,但不与nexus 4 –

回答

0

这个工作对我来说,在我的onReceive

String action = intent.getAction(); 

    if(action.equals(Intent.ACTION_BOOT_COMPLETED)){ 
    //do stuff 
} 
+0

是的。它现在也适用于我。实际上,在nexus 4中,接收BOOT_COMPLETED花费了大量时间,但在三星中它非常即时。所以我无法找出发生了什么。无论如何感谢所有。 :) –

+0

你能帮我解决吗?您将高度赞赏:http://stackoverflow.com/questions/33201891/how-to-know-which-music-player-is-currently-playing-the-song-in-android –

0

您将只接收BOOT_COMPLETED广播,如果用户运行你的应用程序至少一次。这是自Android 3.1以来的一项安全措施。

这不会影响系统的应用程序,但我想你是不是写一个...

这是否帮助?

+0

谢谢你的建议,但它的工作不做任何活动。我刚刚提供了一项服务,并在接收BOOT_COMPLETED时启动了它。在第一次执行时,我并不需要执行此操作。事实上,它在nexus 4设备上显着延迟,所以我很困惑发生了什么。但现在解决了。 :) –

+1

是的......实际上这是一些设备的情况。我们也一直在报道LG设备的BOOT_COMPLETED延迟。 – lgawron