2016-03-16 31 views
7

xiaomiがアプリケーションのバックグラウンドサービスを提供できるかどうかを知りたいですか? 私はいつもバックグラウンドで実行される必要がある私のアプリでサービスを持っています、すべてのデバイスで、Xiaomiを除いてうまく動作します、それはどのようにプログラムで行うことができますか?xiaomiでアプリの自動起動をプログラム的に有効にする方法

答えて

4

あなたはその機能にアクセスできるxiaomiからいくつかのAPIがない限り、それをコードから行うことはできません。私は自動開始マネージャーがアプリであると推測しています(システムアプリの特権を持って、xiaomiの一部が変更されているため)。したがって不可能です。一方、デバイスがルートされている場合は、実際に自動起動マネージャを無効にすることができます。

まだこれは、ホワイトリストにあるようにXiaomiと提携しているため、whatsapp、facebookなど多くのアプリが原因である可能性があります。しかし、それはちょうど推測。

6

xiaomi、oppo、vivo、oneplusの電話機でも動作します。

try { 
     Intent intent = new Intent(); 
     String manufacturer = android.os.Build.MANUFACTURER; 
     if ("xiaomi".equalsIgnoreCase(manufacturer)) { 
      intent.setComponent(new ComponentName("com.miui.securitycenter", "com.miui.permcenter.autostart.AutoStartManagementActivity")); 
     } else if ("oppo".equalsIgnoreCase(manufacturer)) { 
      intent.setComponent(new ComponentName("com.coloros.safecenter", "com.coloros.safecenter.permission.startup.StartupAppListActivity")); 
     } else if ("vivo".equalsIgnoreCase(manufacturer)) { 
      intent.setComponent(new ComponentName("com.vivo.permissionmanager", "com.vivo.permissionmanager.activity.BgStartUpManagerActivity")); 
     } else if("oneplus".equalsIgnoreCase(manufacturer)) { 
      intent.setComponent(new ComponentName("com.oneplus.security", "com.oneplus.security.chainlaunch.view.ChainLaunchAppListAct‌​ivity")); } 

     List<ResolveInfo> list = context.getPackageManager().queryIntentActivities(intent, PackageManager.MATCH_DEFAULT_ONLY); 
     if (list.size() > 0) { 
      context.startActivity(intent); 
     } 
    } catch (Exception e) { 
     Crashlytics.logException(e); 
    } 
+1

1つは何ですか? –

+0

@JanaBabu if( "oneplus" .equalsIgnoreCase(manufacturer)){ intent.setComponent(新しいComponentName( "com.oneplus.security"、 "com.oneplus.security.chainlaunch.view.ChainLaunchAppListActivity")); } –

関連する問題