2017-03-25 2 views
-1

アプリがインストールされていない場合は、アプリをインストールするためにプレイストアに移動します。アプリがインストールされていない場合、別のアプリアクティビティを開く

私のコードはうまくいきますが、そのパッケージ名からアプリケーションを開くだけで、アクティビティを開くことはできません。

コード://詳細ID = com.nouvellesapplis:?

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); 
} 

答えて

0

public void startApplication(String packageName) { 
    Intent launchIntent = getPackageManager().getLaunchIntentForPackage(packageName); 
    if (launchIntent != null) { 
     startActivity(launchIntent); 
    } else { 
     showInMarket(packageName); 
    } 
} 
+0

には活性を試していないがテント{行為= android.intent.action.VIEW DAT =市場を処理することが判明しました。 lt2.view.LoginActivity –

関連する問題