gpt4 book ai didi

android - 我们如何找到启动其他应用程序的信息?

转载 作者:搜寻专家 更新时间:2023-11-01 09:08:21 25 4
gpt4 key购买 nike

我需要允许用户绘制/素描/绘画一些东西。已经有很多应用程序(比如 Skitch,我将以此为例)完成这项任务。所以我不想重新发明轮子。
在 Android 中,理论上,我们可以通过 Intent 启动其他 Activity。这有点像 Unix 中的“管道”。
问题是,我不知道如何获取启动 Skitch 的信息。
要将 Skitch 集成到我的应用程序中,我需要知道它支持的 Action,以及它完成时的返回 Intent (如果有)。

我安装了 Skitch,photoshop ,以及我设备中的许多其他触摸绘图应用程序,但此代码不起作用:

Uri data = Uri.fromFile(file);
Intent i = new Intent(Intent.ACTION_EDIT);
i.setData(data);
i.setType("image/*");
startActivityForResult(i, ACTIVITY_DRAW);

我可以通过以下方式从我的应用程序启动 Skitch:但显然我无法通过这种方式获得任何返回结果(代码来自 here)。

Intent i = new Intent(Intent.ACTION_MAIN);
PackageManager manager = getPackageManager();
i = manager.getLaunchIntentForPackage("com.evernote.skitch");
i.addCategory(Intent.CATEGORY_LAUNCHER);
startActivity(i);

我的问题:是否有标准的方法来查找启动第三方应用程序的信息?
this site共享/获取此类信息的唯一途径?
或者,如果您对我的问题有任何建议,请帮助我。
谢谢!

最佳答案

因为您可能已经知道如何从您的应用程序调用另一个应用程序 Activity ..这种方式 Mentioned Here.

Intent intent = new Intent(Intent.ACTION_RUN); 
intent.setComponent(new ComponentName("<packet name>", "<class name>"));
List list = packageManager.queryIntentActivities(intent, packageManager.COMPONENT_ENABLED_STATE_DEFAULT);

if(list.size() > 0)
{
Log.i("Log", "Have application" + list.size());
startActivity(intent);
}
else
{
Log.i("Log", "None application");
}

所有你需要的主要是两件事来调用任何 Activity

1) 该 Activity 的包名称 2) Activity 类名称

这两个信息只有在开源或免费使用时才可用,例如 Zxing、Google map 应用程序。

还有另一种启动应用程序 Activity 的方法,例如,

Intent intent = new Intent();
intent.setAction(Intent.ACTION_CALL);
intent.setData(Uri.parse("tel:" + numberField.getText())); // set the Uri
startActivity(intent);

要使用这种方式,需要知道要调用的 Activity 的正确操作以及要传递的正确参数。

再说一次,这些信息只有在开源或免费使用时才可用,例如 Facebook 和 Gmail 应用程序来共享和发布消息。

因此,如果您正在搜索任何类似的东西,可以告诉您调用设备中的任何特定商业应用程序需要传递什么,您将不会直接找到它。

关于android - 我们如何找到启动其他应用程序的信息?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/10184256/

25 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com