2017-12-27 37 views
0

내 프로젝트에 Firebase의 InstanceId service (service)을 쓰고 싶습니다. 프로젝트는 SDK이며이를 통합하는 개발자는 service을 재정의 할 수 있습니다. 이 경우 개발자가 지정한 새 서비스의 이름을 AndroidManifest.xml 파일의 특정 작업으로 읽을 수 있어야합니다.AndroidManifest에서 서비스 이름 읽기

여기 실제 질문은 특정 작업으로 AndroidManifest.xml 파일에 선언 된 서비스의 이름을 어떻게 읽을 수 있습니까? 나는이 문서를 추가 할 것입니다 유틸리티 메소드

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 
     } 
    } 

아래

+0

당신은 이름이 필요? 문자열 형식으로? –

+0

유스 케이스는 개발자가 등록한 새로운 서비스를 찾아서 시작하는 것이다. 따라서 완전한 이름으로 할 수 있습니다. –

답변

0

사용은 곧