2014-12-01 3 views
0

감사합니다. Embarcadero XE7 (Delphi)에서 작성한 애플리케이션을 지금 시작하고있는 다른 애플리케이션에서 시작/실행/실행하고 싶습니다.Delphi 외부 응용 프로그램 시작 "활동 없음"

function LaunchActivity(const Intent: JIntent): Boolean; overload; 
begin 
    SharedActivity.getPackageManager.resolveActivity(Intent, 0); 
    SharedActivity.startActivity(Intent); 
end; 

procedure TForm1.Button1Click(Sender: TObject); 
var 
    Intent: JIntent; 
begin 
    Intent := TJIntent.JavaClass.init(StringToJString('com.embarcadero.Server.MAIN')); 
    Intent.setPackage(StringToJString('com.embarcadero.Server')); 
    LaunchActivity(Intent) 
end; 

응용 프로그램의 매니페스트 파일의 일부 내용이 시작된다 :

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

나는 매니페스트 파일은 내가 응용 프로그램을 호출 할 수 있습니다 보여 올바른 생각합니다. 내가 프로그램을 실행할 때, 그것은

활동이 의도을 처리하기 위해 발견 말한다 {행동 = com.embarcadero.Server.MAIN PKG = com.embaracdero.Server}

내가 함께 노력 어떤 결과와 함께 android.intent.action.MAIN.

도움이 필요하지 않습니다.

미리 감사드립니다.

+0

참조 [델파이에서 안드로이드 인 텐트를 보내기 (1 부)] (http://www.danieleteti.it/2013/09/26/sending-android-intents-from -delphi-part-1 /) 및 [Delphi에서 Android 인 텐트 보내기 (2 부)] (http://www.danieleteti.it/2014/01/13/sending-android-intents-from-delphi-part-2 /). –

답변

0

텍스트 파일이나 유사한 것을 보내지 않고 외부 응용 프로그램을 시작하기위한 해결책을 찾았습니다. 모든 예에서 파일이나 "http://google.com"과 같은 것을 보냈습니다.

중요 -> 이것은 외부 응용 프로그램을 시작하기위한 것입니다. 정보는 응용 프로그램에 전달/전송되지 않습니다.

두 가지가 있습니다.

1- 시작될 응용 프로그램에는 전화기에 보이는 아이콘이 없지만 다른 응용 프로그램에서 시작할 수 있습니다.

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

2- 응용 프로그램에는 수동으로 시작/시작하기 위해 전화기에 보이는 아이콘이 있습니다. 그리고 다른 응용 프로그램에서 시작할 수 있습니다. 두 경우 모두에서 응용 프로그램을 실행하는

 <intent-filter> 
      <action android:name="android.intent.action.MAIN" /> 
      <category android:name="android.intent.category.LAUNCHER" /> 
     </intent-filter> 
     <intent-filter> 
      <action android:name="android.intent.action.MAIN" /> 
      <category android:name="android.intent.category.DEFAULT" /> 
     </intent-filter> 

델파이 코드는 다음과 같습니다 com.embarcadero.Server2가 시작되는 응용 프로그램의 패키지의 이름입니다

procedure TForm1.Button1Click(Sender: TObject); 
var 
    Intent: JIntent; 

begin 

Intent := TJIntent.Create; 
Intent.setPackage(StringToJString('com.embarcadero.Server2')); 
Intent.setAction(TJIntent.JavaClass.ACTION_MAIN); 
SharedActivity.startActivity(Intent); 

end; 

.

누군가이 정보를 사용하기를 바랍니다.

0

이 잘 작동 :

Intent := TJIntent.Create; 
    Intent:= SharedActivity.getPackageManager.getLaunchIntentForPackage(StringToJString(s)); 
    SharedActivity.startActivity(Intent); 
관련 문제