如何在Delphi Android应用中使用简单的Intent启动另一个Android应用

欢迎加入全网最大Delphi 技术交流群 682628230

要在Delphi编写的Android应用中通过Intent启动另一个应用,您需要确保正确设置权限并在代码中使用正确的Intent。以下是一个简单示例,展示了如何实现这一点。

步骤1:设置权限

首先,您需要确保在AndroidManifest.template.xml文件中设置了必要的权限。对于启动其他应用的情况,您可能需要启用“Query all packages permission”。这可以通过在RAD Studio中的项目选项里找到“Uses Permissions”部分进行设置。

步骤2:编写代码

接下来,在您的Delphi代码中,使用以下代码片段来创建并发送Intent以启动目标应用。此示例假设您想要启动的应用的包名为com.package.launchme

uses
  Androidapi.JNI.JavaTypes, 
  Androidapi.JNI.GraphicsContentViewText, 
  Androidapi.Helpers, 
  FMX.Platform.Android;

procedure TfrmMain.Button1Click(Sender: TObject);
var
  Intent: JIntent;
begin
  // 创建一个用于启动指定包名应用的Intent
  Intent := MainActivity.getPackageManager.getLaunchIntentForPackage(StringToJString('com.package.launchme'));

  // 检查是否有活动可以处理这个Intent
  if MainActivity.getPackageManager.queryIntentActivities(Intent, TJPackageManager.JavaClass.MATCH_ALL).size > 0 then
  begin
    // 启动目标应用
    MainActivity.startActivity(Intent);
  end
  else
  begin
    // 如果没有找到合适的接收者,显示消息
    ShowMessage('Receiver not found');
  end;
end;

步骤3:确认包名

为了确保您使用的包名是正确的,可以使用ADB命令行工具查询设备上已安装的应用包名: 打开命令提示符或终端,导航到您的SDK平台工具目录,并运行以下命令:

adb shell pm list packages -3 -f

该命令会列出所有第三方应用及其对应的APK路径,您可以从中获取准确的包名(即base.apk=后面的字符串)。

通过遵循上述步骤,您应该能够在您的Delphi Android应用中成功启动另一个指定的应用程序。这种方法已经过测试,适用于SDK版本32。

© 版权声明
THE END
喜欢就支持一下吧
点赞8 分享