2013-06-21 23 views
4

那麼我的一個應用程序在Play商店有一個BOOT_COMPLETED接收器,它從來沒有得到任何問題,直到S4,我收到來自S4用戶的多封電子郵件說該應用程序不工作,並在經過一些故障排除BOOT_COMPLETED接收器是沒有被召喚。Samsung Glaxy S4用戶報告說BOOT_COMPLETED接收器不起作用?

有沒有人在這裏知道如何解決這個特定的設備?

下面是它的主要代碼:

public class BootCompletedIntentReceiver extends BroadcastReceiver { 

@Override 
public void onReceive(Context context, Intent intent) { 
    if ("android.intent.action.BOOT_COMPLETED".equals(intent.getAction())) { 
     ... 
     ... 
     //ALL MY CODE IS HERE 
     ... 
     ... 
    } 
} 
} 

清單:

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

當然,我有正確的權限:

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

用戶是否運行過您的活動?請記住,除非手動運行應用程序的組件,否則在Android 3.1+上,清單註冊的接收器將無法運行。 – CommonsWare

+0

是的,他們打開了它,並做了一些我曾要求他們做的故障排除。所有結果都以相同的結果結束,接收器在啓動時不會被調用,所以用戶必須再次打開應用程序才能啓用服務。 –

+1

你也可以看看http://stackoverflow.com/questions/17221679/boot-completed-intent-not-received-on-all-devices/17221917#17221917我在和別人討論這類事情昨天,如果它給你任何線索。我目前沒有S4,所以我不知道是否有關於'BOOT_COMPLETED'的其他細節。 – CommonsWare

回答

0

BOOT_COMPLETE之前外部存儲發送安裝。如果應用程序安裝到外部存儲器,它將不會收到BOOT_COMPLETE廣播消息。爲了防止這種情況,您可以將應用程序安裝在內部存儲器中你可以在menifest.xml中添加這一行。

<manifest xmlns:android="http://schemas.android.com/apk/res/android" 
    android:installLocation="internalOnly" 
    ... > 

一些HTC設備可以啓用「快速啓動」功能,它更像是一個深冬眠,而不是一個真正的重新啓動,因此不應該給BOOT_COMPLETE意圖。要恢復這個接收機將是這樣的:

 <receiver 
      android:name="YOUR_FULL_PACKAGE_NAME.BootStartUpReciever" 
      android:enabled="true" 
      android:exported="true" > 
      <intent-filter> 
       <action android:name="android.intent.action.BOOT_COMPLETED" /> 
       <action android:name="android.intent.action.QUICKBOOT_POWERON" /> 
      </intent-filter> 
     </receiver> 

這個過程正在我三星Galaxy SM-T235Y TAB4但不要三星GT-S7852手機工作。相關Thread is here

相關問題