2017-12-27 43 views
0

serviceのようなFirebaseのInstanceId serviceを私のプロジェクトに書きたいと思っています。プロジェクトはSDKであり、それを統合する開発者はserviceをオーバーライドする規定を持っています。この場合、開発者が指定した新しいサービスの名前を特定の操作でAndroidManifest.xmlファイルに読み込むことができるはずです。AndroidManifestのサービス名を読む

実際の質問は、AndroidManifest.xmlファイルで宣言されているサービスの名前を特定の操作でどのように読み取ることができますか?

+0

すぐにドキュメントを追加しますか?文字列形式ですか? –

+0

ユースケースは、開発者が登録した新しいサービスを見つけて開始することです。したがって、完全修飾名が必要です。 –

答えて

0

ユーティリティメソッド以下の利用

public static void startService(Context context, String lookupAction) { 

     Intent serviceIntent = new Intent(); 
     serviceIntent.setAction(lookupAction); 
     serviceIntent.setPackage("package.of.your.application"); 

     List<ResolveInfo> resInfo = context.getPackageManager().queryIntentServices(serviceIntent, 0); 
     if (resInfo != null && !resInfo.isEmpty()) { 

      ServiceInfo service = resInfo.get(0).serviceInfo; 
      ComponentName cmpService = new ComponentName(service.applicationInfo.packageName, service.name); 

      Intent serviceToStart = new Intent(lookupAction); 

      serviceToStart.setComponent(cmpService); 

      context.startService(serviceToStart); 
     } else { 
      // Handle error 
     } 
    } 

私はあなたが名前だけを必要とする

関連する問題