2015-10-10 57 views
1

我創建的應用程序有權啓動自動啓動。和它在那些不包含權限管理器的移動設備上工作正常。如何覆蓋Android中的權限管理器

我想開始我的應用程序,如Whats App和微信等應用程序。但許可經理停止我的應用程序自動啓動 - MI Redme Note 4g手機和三星手機。基本上,我要重寫權限管理設置,使我的應用程序將目前即時通訊使用這些代碼

<receiver 
    android:name=".BootComplete" 
    android:enabled="true" 
    android:exported="false" > 
     <intent-filter> 
     <action android:name="android.intent.action.BOOT_COMPLETED" /> 
      </intent-filter> 
    </receiver> 

    <service android:name=".AutoStartUp" > 
    </service> 

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

請諮詢我,讓我的應用程序自動開始喜歡請告訴我應用,微信開始

,的Youtube和其他應用程序不會提前

感謝

回答

1

你的代碼在這裏所做的是:當設備啓動時,它會告訴廣播接收器,現在的廣播接收器需要開始不管你要啓動的服務或應用程序或者:

import android.app.ActivityManager; 
import android.app.ActivityManager.RunningServiceInfo; 
import android.app.AlarmManager; 
import android.app.PendingIntent; 
import android.content.BroadcastReceiver; 
import android.content.Context; 
import android.content.Intent; 

public class MyBroadcastReceiver extends BroadcastReceiver { 

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



     if(! isMyServiceRunning(MyFirstService.class, context)){//test 

     Intent startServiceIntent = new Intent(context, MyFirstService.class); 
     context.startService(startServiceIntent); 
     } 




    } 

    private boolean isMyServiceRunning(Class<?> serviceClass,Context context) { 


     ActivityManager manager = (ActivityManager)context. getSystemService(Context.ACTIVITY_SERVICE); 
     for (RunningServiceInfo service : manager.getRunningServices(Integer.MAX_VALUE)) { 
      if (serviceClass.getName().equals(service.service.getClassName())) { 
       return true; 
      } 
     } 
     return false; 
    } 

} 

該代碼還檢查服務已(由於某種原因)上運行,你可以刪除一部分,如果你要。

+0

好主意@Mr。 M,我會執行它 –

+0

我希望有人在幾年前我需要這個時候在那裏。如果有效,請檢查此答案是否爲將來參考的正確答案。 –