是否有可能检测并启动应用程序A(如果不存在),如果不存在则是B,如果两者都不存在重定向存储?

时间:2016-04-14 11:10:15

标签: android android-intent

我希望从Android上的浏览器中启动某种优先级的应用程序。目标是: 1.如果存在,启动应用程序A. 2.如果没有,但应用程序B出现启动应用程序B. 3.如果不是:在Google Play商店中重定向到应用A

感谢。

2 个答案:

答案 0 :(得分:1)

您可以使用以下功能从其打包应用程序名称

    public void runApp(String appName) throws IllegalArgumentException {
    Intent mainIntent = new Intent(Intent.ACTION_MAIN, null);
    mainIntent.addCategory(Intent.CATEGORY_LAUNCHER);
    for ( ResolveInfo info : getPackageManager().queryIntentActivities( mainIntent, 0) ) {
        if ( info.loadLabel(getPackageManager()).equals(appName) ) {
            Intent launchIntent = getPackageManager().getLaunchIntentForPackage(info.activityInfo.applicationInfo.packageName);
            startActivity(launchIntent);
            return;
        }
    }
    throw new IllegalArgumentException("Application not found!");
}

答案 1 :(得分:0)

是的,这是可能的。首先,通过意图使您可以浏览应用程序。

<intent-filter>
<action android:name="android.intent.action.VIEW" />
<category android:name="android.intent.category.DEFAULT" />
<category android:name="android.intent.category.BROWSABLE" /> 
<data android:scheme="http" android:host="yourapp.com" android:path="/get/" />
</intent-filter>

现在您可以直接从浏览器访问此应用。 使用简单的脚本添加着陆页,例如

<script>
    if( navigator.userAgent.match(/android/i) ) {    
        // redirect to the Play store    
    } else if( navigator.userAgent.match(/iPhone/i) ) {    
        // redirect IOS store    
    }
</script>

现在,您可以将用户重定向到应用程序(如果已安装)或现在将其重定向到另一个应用程序,然后再转移到Play商店。

<a href="http://yourapp.com/get/"/>

更多详情请见here