2011-07-29 26 views
7

我正在開發一個小應用程序,將安裝的應用程序顯示爲一個微調列表中的列表。只有應用程序名稱顯示爲微調器值。每當我從微調選擇一個應用程序,我需要檢索所選應用程序的UID。我怎樣才能實現這個功能?如何從顯示在微調框中的列表中獲取android應用程序的uid值?

以下是我從已安裝的應用程序存儲在使用PackageManager類名單微調

appspinner.setOnItemSelectedListener(new OnItemSelectedListener() { 

     @Override 
     public void onItemSelected(AdapterView<?> parent, View arg1, 
       int app_pos, long app_id) { 
      // TODO Auto-generated method stub 
      String app_selected=parent.getItemAtPosition(app_pos).toString(); 

     } 

     @Override 
     public void onNothingSelected(AdapterView<?> arg0) { 
      // TODO Auto-generated method stub 
      return; 
     } 
    }); 

獲取應用程序名稱和使用PackageInfo類我得到了應用程序的名稱代碼。

回答

16

您將需要使用PackageManager獲取有關您在列表中選擇的任何應用程序的包信息。我沒有這樣做Spinner,但我相信它應該像我在ListView一樣。

appspinner.setOnItemSelectedListener(new OnItemSelectedListener() { 

     @Override 
     public void onItemSelected(AdapterView<?> parent, View arg1, 
       int app_pos, long app_id) { 
     // TODO Auto-generated method stub 
     String app_selected=parent.getItemAtPosition(app_pos).toString(); 

     final PackageManager pm = getPackageManager(); 
     //get a list of installed apps. 
     List<ApplicationInfo> packages = pm.getInstalledApplications(
       PackageManager.GET_META_DATA); 
     int UID; 
     //loop through the list of installed packages and see if the selected 
     //app is in the list 
     for (ApplicationInfo packageInfo : packages) { 
      if(packageInfo.packageName.equals(app_selected)){ 
       //get the UID for the selected app 
       UID = packageInfo.uid; 
       break; //found a match, don't need to search anymore 
      } 

     } 

     //Do whatever with the UID 
     Log.i("Check UID", "UID is: " + UID);    

    } 

    @Override 
    public void onNothingSelected(AdapterView<?> arg0) { 
     // TODO Auto-generated method stub 
     return; 
    } 
}); 

你可能想看看packageName返回packageName所以你可以嘗試與選擇任何與之匹敵。

希望這可以指導您正確的方向並幫助您。祝你好運。

+0

感謝您的建議.. – Unnikrishnan

+2

也許添加一個'打破;'找到匹配後,以避免不必要的處理:) – pablisco

+0

感謝您的建議@pablisco,我做了編輯。 – Wolfcow

相關問題