2010-05-27 196 views
21

我知道如何在我自己的應用程序中打開另一個活動時使用意圖和startActivity(),但是如何啓動不同的應用程序?具體如下:android:我如何從我的應用程序打開另一個應用程序?

  • 你如何確定用戶是否在他們的設備上安裝了所需的應用程序?
  • 你如何啓動該應用程序?
  • 如何將參數傳遞給該應用程序?
  • 你如何找到一個特定的應用程序的所有信息(比如說Adobe Reader或谷歌地圖)?

回答

32

如何看是否原意是可供選擇:

  1. 嘗試調用意圖和處理ActivityNotFoundException如果它不可

    Intent intent = new Intent(Intent.ACTION_VIEW); 
    intent.setDataAndType(path, "application/pdf"); 
    intent.setFlags(Intent.FLAG_ACTIVITY_CLEAR_TOP); 
    
    try { 
        startActivity(intent); 
    } 
    catch (ActivityNotFoundException e) { 
        Toast.makeText(OpenPdf.this, 
         "No Application Available to View PDF", 
         Toast.LENGTH_SHORT).show(); 
    } 
    

  2. Query the Package Manager,看它是否是提前的時間:

    PackageManager packageManager = getPackageManager(); 
    Intent intent = new Intent(Intent.ACTION_VIEW); 
    intent.setType("application/pdf"); 
    
    List list = packageManager.queryIntentActivities(intent, 
        PackageManager.MATCH_DEFAULT_ONLY); 
    
    if (list.size() > 0) { 
        intent.setDataAndType(path, "application/pdf"); 
        startActivity(intent); 
    } 
    

如何參數傳遞給應用程序或知道其功能:

  1. List of Available Intents for Google Applications
  2. List of Intents by 3rd parties @ OpenIntents
+0

它不工作的機器人7.0請更新答案 – Mariyappan 2017-10-24 18:12:14

相關問題