2017-03-25 1 views
-1

앱이 설치되어 있지 않은 경우 내 앱에서 다른 앱 활동을 열고 싶습니다. 앱을 설치하기 위해 플레이 스토어로 이동하십시오.앱이 설치되지 않은 경우 다른 앱 활동 열기

내 코드는 정상적으로 작동하지만 패키지 이름에서 앱을 열면 활동이 시작되지 않습니다.

코드 :

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 = 시장을 처리하기 위해 찾을 수 없습니다 : // 세부 ID = com.nouvellesapplis을?. lt2.view.LoginActivity –

관련 문제