首页
学习
活动
专区
圈层
工具
发布
首页
学习
活动
专区
圈层
工具
MCP广场
社区首页 >问答首页 >如何制作依赖于另一个应用的Android应用程序?

如何制作依赖于另一个应用的Android应用程序?
EN

Stack Overflow用户
提问于 2011-10-11 10:27:44
回答 5查看 5.9K关注 0票数 21

如果我创建了一个依赖于另一个或多个应用程序(例如: Facebook和Twitter应用程序)的应用程序,但它们还没有安装,那么有什么方法可以检查这些依赖项并同时安装它们吗?

EN

回答 5

Stack Overflow用户

回答已采纳

发布于 2011-10-25 10:02:44

我是在我的应用程序中这样做的,它需要安装zxing扫描器应用程序。您将希望在onclick或ontouch中这样做:

代码语言:javascript
运行
复制
try{
    Intent intent = new Intent("com.google.zxing.client.android.SCAN");
    intent.setPackage("com.google.zxing.client.android");
    startActivityForResult(intent, 0);
} catch (Exception e) {
    createAlert("Barcode Scanner not installed!", "This application uses " +
    "the open source barcode scanner by ZXing Team, you need to install " +
    "this before you can use this software!", true);
}

打电话

代码语言:javascript
运行
复制
public void createAlert(String title, String message, Boolean button) {
    // http://androidideasblog.blogspot.com/2010/02/how-to-add-messagebox-in-android.html
    AlertDialog alertDialog;
    alertDialog = new AlertDialog.Builder(this).create();
    alertDialog.setTitle(title);
    alertDialog.setMessage(message);
    if ((button == true)) {
        alertDialog.setButton("Download Now",
        new DialogInterface.OnClickListener() {
            public void onClick(DialogInterface arg0, int arg1) {
                Intent browserIntent = new Intent(
                    Intent.ACTION_VIEW,
                    Uri.parse("market://search?q=pname:com.google.zxing.client.android"));
                startActivity(browserIntent);
            }
        });
    }
    alertDialog.show();
}

然后,在整理完所有的代码之后,我意识到你要求它和你的应用程序同时安装。不确定是否应该发布这段代码,但这可能会有所帮助。

票数 22
EN

Stack Overflow用户

发布于 2011-10-26 01:14:06

简短回答:否,您不能将其他应用程序自动安装为依赖项。

更长的答案:

Android不允许您将其他应用程序声明为依赖项来安装。作为一个系统,市场似乎是为单个应用程序安装而设计的--而不是Linux发行版风格的超级依赖图。

在运行时,您可以测试安装的应用程序,如果是的话,可以将您的用户押上市场。请参阅@QuickNick (测试是否安装了应用程序)和@TerryProbert (游向市场)所建议的技术(如果这是您想要的)。

您最好的选择可能是设计您的应用程序,以便在没有依赖项的情况下优雅地降级,并建议(或坚持)它们去市场安装它们。

票数 10
EN

Stack Overflow用户

发布于 2011-10-11 10:39:28

从这里开始:

代码语言:javascript
运行
复制
Intent mediaIntent = new Intent("com.example.intent.action.NAME");
// add needed categories
List<ResolveInfo> listResolveInfo = getPackageManager().queryIntentServices(mediaIntent, 0);
if (listResolveInfo.size() != 0) {
  //normal behavior
} else {
  //install what you need
}

我给出了查询服务的例子。如果您想检查活动,那么将调用queryIntentActivities()。

票数 5
EN
页面原文内容由Stack Overflow提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://stackoverflow.com/questions/7724579

复制
相关文章

相似问题

领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档