如何让用户知道他/她需要安装其他应用程序,我的应用程序依赖于

问题描述:

我正在开发定义了一些意向性的过滤器的应用程序(在操作字符串的形式,例如com.example.project.UPLOAD)为其他应用程序使用。考虑一个设备没有我的应用程序,但是使用我的意图过滤器的应用程序,创建的Intent将会按照文档中描述的操作测试失败。有什么办法可以防止这种情况的发生或提供更好的用户体验吗?这里有一些我能想到的,但不知道是否有可行的方法之一:如何让用户知道他/她需要安装其他应用程序,我的应用程序依赖于

  1. 在安装一个依赖于另一个应用程序来处理一些意图的应用程序,建议用户安装应用程序,可以处理这个意图
  2. 动态确定的意图可以处理。如果没有,启动市场显示可以处理意图的应用程序

处理此问题的最佳方法是什么?请尽可能提供一些实施参考。

+0

类似http://*.com/questions/7724579/android-dependencies – 2016-02-19 20:32:21

除了在卖场中提到这一点,我不知道你会如何去应用程序安装过程中呈现的消息,(据我所知)没有安装时执行代码不支持的方法。

如果其他应用程序使用的过滤器,那么它是由他们来确保你的软件包安装。如果没有安装,你无法给他们任何东西。

他们可以测试一下,看看如果使用PackageManager安装包,并调整自己的逻辑来通知用户,当他们需要安装你的包。例如:

private boolean isInstalled(){ 
    ComponentName comp = new ComponentName("com.yourpackagestuff", "com.yourpackagestuff.TestClass"); 
    Intent intentName = new Intent().setComponent(comp); 
    List <ResolveInfo> list = ctx.getPackageManager().queryIntentActivities(intentName, PackageManager.MATCH_DEFAULT_ONLY); 
    return list.size() > 0; 
} 

至少这是我如何去做的。

你可以尝试调用的意图和赶上ActivityNotFoundException如果抛出。如果它被抛出,你知道它不存在,所以你可以实现你的备份代码。

这个解决方案更快Android check for dependent application during installation?

getPackageManager().getApplicationInfo("com.myproject", 0); 

无异常意味着其确定