Java 打开另一个应用程序活动,如果未安装应用程序,请转到play store

Java 打开另一个应用程序活动,如果未安装应用程序,请转到play store,java,android,android-intent,Java,Android,Android Intent,我想从我的应用中打开另一个应用活动,如果未安装该应用,请转到play store安装该应用 我的代码工作正常,但它只是从它的包名打开应用程序,而不是打开活动 代码: public void startApplication(字符串packageName) { 尝试 { Intent-Intent=newintent(“android.Intent.action.MAIN”); addCategory(“android.intent.category.LAUNCHER”); intent.addF

我想从我的应用中打开另一个应用活动,如果未安装该应用,请转到play store安装该应用

我的代码工作正常,但它只是从它的包名打开应用程序,而不是打开活动

代码:

public void startApplication(字符串packageName)
{
尝试
{
Intent-Intent=newintent(“android.Intent.action.MAIN”);
addCategory(“android.intent.category.LAUNCHER”);
intent.addFlags(intent.FLAG\u活动\u无\u动画);
List resolveInfoList=getPackageManager().QueryInputActivities(intent,0);
for(ResolveInfo:resolveInfoList)
if(info.activityInfo.packageName.equalsIgnoreCase(packageName))
{
启动组件(info.activityInfo.packageName、info.activityInfo.name);
返回;
}
//不匹配,因此未安装应用程序
showInMarket(packageName);
}
捕获(例外e)
{
showInMarket(packageName);
}
}
私有void启动组件(字符串packageName、字符串名称)
{
Intent-Intent=newintent(“android.Intent.action.MAIN”);
addCategory(“android.intent.category.LAUNCHER”);
setComponent(新组件名(packageName,name));
intent.setFlags(intent.FLAG\u活动\u新任务);
星触觉(意向);
}
私有void showInMarket(字符串packageName)
{
Intent Intent=新的Intent(Intent.ACTION\u视图,Uri.parse(“market://details?id=“+packageName”);
intent.setFlags(intent.FLAG\u活动\u新任务);
星触觉(意向);
}
试试看


找不到处理Intent{act=android.Intent.action.VIEW dat的活动=market://details?id=com.nouvellesapplis.lt2.view.LoginActivity
public void startApplication(String packageName)
{
    try
    {
        Intent intent = new Intent("android.intent.action.MAIN");
        intent.addCategory("android.intent.category.LAUNCHER");

        intent.addFlags(Intent.FLAG_ACTIVITY_NO_ANIMATION);
        List<ResolveInfo> resolveInfoList = getPackageManager().queryIntentActivities(intent, 0);

        for(ResolveInfo info : resolveInfoList)
            if(info.activityInfo.packageName.equalsIgnoreCase(packageName))
            {
                launchComponent(info.activityInfo.packageName, info.activityInfo.name);
                return;
            }

        // No match, so application is not installed
        showInMarket(packageName);
    }
    catch (Exception e)
    {
        showInMarket(packageName);
    }
}

private void launchComponent(String packageName, String name)
{
    Intent intent = new Intent("android.intent.action.MAIN");
    intent.addCategory("android.intent.category.LAUNCHER");
    intent.setComponent(new ComponentName(packageName, name));
    intent.setFlags(Intent.FLAG_ACTIVITY_NEW_TASK);

    startActivity(intent);
}

private void showInMarket(String packageName)
{
    Intent intent = new Intent(Intent.ACTION_VIEW, Uri.parse("market://details?id=" + packageName));
    intent.setFlags(Intent.FLAG_ACTIVITY_NEW_TASK);
    startActivity(intent);
}
public void startApplication(String packageName) {
    Intent launchIntent = getPackageManager().getLaunchIntentForPackage(packageName);
    if (launchIntent != null) { 
        startActivity(launchIntent);
    } else {
        showInMarket(packageName);
    }
}