2011-08-11 46 views
1

我該如何去尋找motoblur和touchwiz上系統應用的軟件包名稱和主要活動名稱?我正在製作一個應用程序,但我希望它是通用的,而不僅僅是感知和股票機器人。我實際上並不擁有運行touchwiz或motoblur的手機,所以我很難找到如何找到它們。由於查找系統應用程序的包和活動名稱?

回答

1

注意,你不應該開始通過包/類名活動 - 系統應用因設備而異,活動類名稱可能隨應用程序更新而改變(我注意到谷歌地圖曾經這樣做過)。

另一個原因是用戶可能更願意使用他們安裝的其他應用程序來執行特定任務(例如,我更喜歡使用第三方應用程序拍照)。

您應該通過系統定義的意圖調用應用程序。

+0

謝謝,我在這一切都很新,所以我會用什麼代碼來做到這一點?或者有沒有可以提供的鏈接?任何幫助表示感謝 – natehoch96

0

你需要收集信息關於安裝的應用程序不是去通過list並搜索所需的活性

PackageManager packmngr = this.getPackageManager(); 
    Intent ints = new Intent(Intent.ACTION_MAIN, null) 
    ints.addCategory(Intent.CATEGORY_LAUNCHER); 
    List<ResolveInfo> list = packmngr.queryIntentActivities(ints, PackageManager.PERMISSION_GRANTED); 

ints.addCategory(Intent.CATEGORY_LAUNCHER); < ---在這裏,您可以指定哪些類型的Intent(其中開發者在手機上在清單中定義的其他應用程序)使用查詢進行搜索時,它可以通過CATEGORY_LAUNCHERCATEGORY_DEFAULT實際上主要活動的類型爲CATEGORY_LAUNCHER

而且在列表中的瑣碎迭代:

 for(ResolveInfo rlnfo: list) 
     { 
      //Adjust the code and do tests within here. 
      Log.i("ACTIVITY INFO: ", rlnfo.activityInfo.toString()); 
      Log.i("ACTIVITY NAME: ",rlnfo.resolvePackageName.toString()); 
     } 

入住這裏瞭解常量和方法的詳細信息: http://developer.android.com/reference/android/content/pm/PackageManager.html

相關問題