2015-01-06 51 views
2

工作,我目前工作的一個應用程序,它包括Boot_Completed廣播接收器的概念。我已經在我的摩托羅拉Moto G手機上測試過這個應用程序。該應用程序運行良好,並顯示Toast消息。但是當我在XIAOMI Redmi 1S測試這個應用程序時,它不顯示Toast消息。完成引導未在安卓(紅米手機)

我已經看到了許多類似於我的問題的問題(如這些 - Question 1,Question 2等)......但我沒有解決這個問題。

我的清單:

<?xml version="1.0" encoding="utf-8"?> 
<manifest xmlns:android="http://schemas.android.com/apk/res/android" 
package="com.example.demoapp" 
android:versionCode="1" 
android:versionName="1.0" 
android:installLocation="internalOnly" > 
<uses-sdk 
    android:minSdkVersion="8" 
    android:targetSdkVersion="21" /> 
<uses-permission android:name="android.permission.RECEIVE_BOOT_COMPLETED"/> 
<application 
    android:allowBackup="true" 
    android:icon="@drawable/ic_launcher" 
    android:label="@string/app_name" 
    android:theme="@style/AppTheme" > 
    <activity 
     android:name="com.example.demoapp.MainActivity" 
     android:label="@string/app_name" > 
     <intent-filter> 
      <action android:name="android.intent.action.MAIN" /> 
      <category android:name="android.intent.category.LAUNCHER" /> 
     </intent-filter> 
    </activity> 
    <receiver android:name="com.example.demoapp.MyReceiver" 
     android:enabled="true" 
     android:exported="true" > 
     <intent-filter > 
      <action android:name="android.intent.action.BOOT_COMPLETED"/> 
     </intent-filter> 
    </receiver> 
</application> 
</manifest> 

MyReceiver.java

public class MyReceiver extends BroadcastReceiver { 
@Override 
public void onReceive(Context context, Intent intent) { 
    if ("android.intent.action.BOOT_COMPLETED".equalsIgnoreCase(intent.getAction())) { 
     Toast.makeText(context, "Boot Complete.", Toast.LENGTH_LONG).show(); 
    } 
} 
} 

我怎樣才能解決這個問題?

+0

你有什麼PACKAGE_NAME?和源MyReceiver包名稱? –

+0

「com.example.demoapp」是我的PACKAGE_NAME。 @kalyanpvs –

+1

面對與小米紅米1s相同的問題。 – Rohit

回答

3

這是你的bug的解決方案。

你需要做的是什麼,你也需要提這個許可,您的意向篩選。

   <receiver android:name="com.example.demoapp.MyReceiver" 
         android:enabled="true" 
         android:exported="true" > 

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

這裏你還需要做一件事。

轉到yourdevice

「設置 - Apps_open您的應用程序信息,管理在未經許可的」在這裏檢查所有的東西在這裏。

因爲對於某些設備將無法正常工作。 Ex.Red MI

試試這個!

+0

這可以解決我Redmi 1s問題。感謝周杰倫的信息。 –

+0

添加沒有幫助我與紅米1s。 只有在MIUI提供的安全應用的自動重啓應用列表中添加了我的應用之後,它才起作用。 – binaryKarmic

5

在XIOMI設備的情況下,你必須手動設置權限,我想你可以通過「自動啓動管理」列表中,這是作爲默認的安全應用將您的應用程序解決此問題。

+0

如何在「自動啓動管理」列表中添加我的應用程序? @ user3188965 –

1

轉到管理應用程序的權限

選擇從應用

切換 「自動啓動」

+0

我已經使用這個步驟,但沒有工作。 @hardik m –

1

您的應用程序嘗試刪除,如果從廣播reciever條件

public class MyReceiver extends BroadcastReceiver { 
@Override 
public void onReceive(Context context, Intent intent) { 
    Toast.makeText(context, "Boot Complete.", Toast.LENGTH_LONG).show(); 
} 
}