2

내가 만든 응용 프로그램에서 응용 프로그램의 활동 (주 활동이 아닌)을 시작해야합니다. 내가 시작하려는 활동은 독점적 인 것이므로 코드 (또는 목록)를 변경할 수는 없습니다.Android의 다른 응용 프로그램에서 응용 프로그램의 활동 시작

예를 들면 : 내 자신의 응용 프로그램에서 누군가의 Facebook 프로필을 시작하고 싶습니다. 내 애플 리케이션에서 페이 스북 (Facebook)에 대한 일반적인 의도는 '내가 원하지 않는' '뉴스 피드'를 열 것이다. 다른 활동에 액세스하는 방법을 알고 싶습니다. 미리 감사드립니다.

작은 코드 내가 가진 :

String PACKAGE="com.facebook.katana"; 
Intent launchIntent = getPackageManager() 
        .getLaunchIntentForPackage(PACKAGE); 
startActivity(launchIntent); 
+1

"다른 활동에 액세스하는 방법을 알고 싶습니다."- 다른 응용 프로그램의 개발자에게 "응용 프로그램에서이 활동을 시작하는 데 사용할 적절한 'Intent'구조가 무엇인지 물어보십시오. 그 의도를 장기적으로지지하겠다는 계획을 세웠습니까? " – CommonsWare

답변

1

명시 적 의도를 사용하는 데 필요한 특정 활동을 시작합니다. 또는 활동이 응답하는 활동을 아는 경우 활동과 함축적 인 의도를 사용하십시오.

당신이 할 수있는 명시 적 의도를 사용하려면 다음 (당신이 활동에서 호출 제공) : 또한, 의도에 플래그를 추가 액션과 카테고리를 추가 할 수

 Intent intent = new Intent(); 
     intent.setComponent(new ComponentName("com.package.name", "com.package.name.ActivityName")); 
     if(getPackageManager().resolveActivity(intent, 0) != null) { 
      startActivity(intent); 
     } else { 
      Toast.makeText(this, "No app installed that can perform this action", Toast.LENGTH_SHORT).show(); 
     } 

. Intent가 PackageManager에 의해 실행 가능한 의도로 해결 될 수있는 한, 활동을 시작합니다. 이제

...

페이스 북 프로필에 대한 문제는, 다른 하나입니다.

아마도이 작업을 수행하는 가장 좋은 방법은 액션 VIEW에 인 텐트를 사용하고 프로필 페이지에 uri와 함께 Intent.setData를 제공하는 것입니다. 그것은 또한 정확하게 해결 될 가능성을 확인해야합니다. 그리고 나서 지원되는 모든 활동의 선택기를 열어 페이스 북 응용 프로그램을 포함시켜야합니다. 그런 다음 페이스 북 앱이나 실행기를 사용하여 의도를 여는 것은 사용자의 몫입니다.