0

아래의 링크에 대한 답변을 참고하십시오. 에 com.company.package에서 UID (10036)와 함께 요청 코드 :다른 응용 프로그램 탭 활동에서 응용 프로그램 활동 호출?

Android : Call activity of another application

나는 firstTabSpec.setIndicator("Second Tab Name").setContent(new Intent("com.company.package.FOO"));

로 시도했지만 나는

이 java.lang.SecurityException 받고 있어요 프로세스 com.example.test (uid 10037)에서 실행하십시오.

여기서 com.example.test는 패키지 c입니다. 설치된 패키지 "com.company.package.FOO"매니페스트

com.company.package을 Alling은 것은

<activity 
     android:name="com.company.package.Login" 
     android:label="@string/app_name" 
     android:windowSoftInputMode="adjustResize|stateVisible" > 
     <intent-filter> 
      <action android:name="com.company.package.FOO" /> 

      <category android:name="android.intent.category.DEFAULT" /> 
     </intent-filter> 
    </activity> 

com.example.test 매니페스트

<activity 
     android:name="com.example.test.MainActivity" 
     android:label="@string/app_name" > 
     <intent-filter> 
      <action android:name="android.intent.action.MAIN" /> 

      <category android:name="android.intent.category.LAUNCHER" /> 
     </intent-filter> 
    </activity> 

나에게주세요 더 자세한 정보가 필요한지 아세요.

감사합니다 :)

+1

자신의 응용 프로그램에 다른 응용 프로그램의 활동을 포함시킬 수 없습니다. – Luksprog

+0

그들은 내가 게시 한 ref 링크에서 해냈습니다. 내가 TabActivity에서 그것을 구현할 수 있지만 작동 버튼 클릭으로 그것을 시도했다. – kAnNaN

+0

그것은 같은 것이 아닙니다. 'Intent'를 사용하여 다른 앱에서 새로운'Activity'를 시작할 수는 있지만,'Intent'가 실제로'Intent'에 의해 지시 된 활동으로 그 탭의 내용을 만들고있는'setContent()'를 사용하는 경우에 말이죠. . 그래서 기본적으로 시작된 Activity는'TabActivity' (안타깝게 사용해서는 안되는)에 포함될 것입니다. 안드로이드에서는 허용되지 않으므로 (SecurityException이 발생합니다). – Luksprog

답변

2

다른 응용 프로그램 활동을 열 수있는 의도 메시지를 보낼 수 있지만 탭에서 다른 응용 프로그램 활동을 사용할 수는 없습니다. 기껏해야 당신이 할 수있는 한 가지. 여하튼 당신이 다른 응용 프로그램의 탭을 보여주고 자하는 탭이 전환되었을 때 그 응용 프로그램을 시작하기위한 의도를 보낼 때 감지합니다. 그렇게하면 탭에서 해당 애플리케이션의 활동을 표시 할 수 없지만 다른 활동처럼 애플리케이션을 시작할 수 있습니다.

이 다른 응용 프로그램을 시작하려는 탭 (A)에 말 :이 작업을 수행하려면 다음과 같은

옵션 1 중 하나를 수행합니다. 탭 A에서 빈 레이아웃으로 활동을 설정하십시오. 그리고 해당 액티비티의 onCreate 메소드에서 다른 애플리케이션을 시작하십시오. 그러나 여기에 문제가 있습니다. 다른 응용 프로그램이 끝나면 빈 화면이 나타납니다. 제 경우에는이 문제를 해결하기 위해 다른 응용 프로그램을 닫을 때 탭을 기본 (다른 탭) 탭으로 전환했습니다.

옵션 2 :

당신이 감지 할 수있는 탭이 TabHost.OnTabChangeListener 수신기를 사용하여 변경 될 때. 그런 다음 똑같은 일을 할 수 있습니다.

옵션 3 :

또는 탭 버튼 클릭을 감지하여 같은 일을 할 수 있습니다.

어쨌든 위의 3 가지 옵션은 모두 같은 옵션의 변형입니다. 그것은 좋은 해결책이 아니지만 나는이 순간에 더 나은 해결책을 볼 수 없다.희망이 당신을 위해 작동합니다. 감사합니다

3

보안상의 이유로 종류의 iframe이 같은 자신의 응용 프로그램에서 다른 응용 프로그램의 활동을 표시 할 수 없습니다.

그러나 활동을 정상적으로 시작하고 제어를 전달할 수는 있습니다.

관련 문제