我正在开发一个小应用程序,它将已安装的应用程序显示为微调器中的列表.只有应用程序名称显示为微调器值.每当我从微调器中选择一个应用程序时,我需要检索所选应用程序的UID.我该如何实现这个功能?
以下是我从微调器获取应用程序名称的代码
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;
}
});
Run Code Online (Sandbox Code Playgroud)
已安装的应用程序使用PackageManager类存储在列表中,并使用PackageInfo类获取应用程序的名称.
Wol*_*cow 17
您需要使用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;
}
});
Run Code Online (Sandbox Code Playgroud)
您可能想看看如何packageName返回,packageName以便您可以尝试将其与所选的任何内容相匹配.
希望这能指出你正确的方向并帮助你.祝好运.
| 归档时间: |
|
| 查看次数: |
22705 次 |
| 最近记录: |