我已经做了一个小方法来在android中显示已安装的应用程序名称.但是当我给"name"属性显示异常错误时.当我给"packageName"时,该方法执行完美,并在列表中显示包名称
private void getInstalledApps() {
// TODO Auto-generated method stub
PackageManager packageManager=this.getPackageManager();
List<ApplicationInfo applist=packageManager.getInstalledApplications(0);
Iterator<ApplicationInfo> it=applist.iterator();
while(it.hasNext()){
ApplicationInfo pk=(ApplicationInfo)it.next();
String appname=pk.name.toString();
installedapplist.add(appname);
}
}
Run Code Online (Sandbox Code Playgroud)
在上面的代码中,当我给String appname=pk.packageName.toString()它工作正常,但当我给String appname=pk.name.toString()程序抛出异常错误.请帮我解决问题.
我创建了一个检查Android手机是否已植根的方法.这样做如下
public int checkrootcommand(String string) {
// TODO Auto-generated method stub
Process exec;
try {
exec = Runtime.getRuntime().exec(new String[]{"su","-c"});
final OutputStreamWriter out = new OutputStreamWriter(exec.getOutputStream());
out.write("exit");
out.flush();
Log.i(SUPER_USER_COMMAND, "su command executed successfully");
return 0; // returns zero when the command is executed successfully
} catch (IOException e) {
// TODO Auto-generated catch block
e.printStackTrace();
}
return 1; //returns one when the command execution fails
}
Run Code Online (Sandbox Code Playgroud)
但问题是方法checkrootcommand()首先执行完美,但是当再次调用相同的方法时,超级用户会话仍在运行.有没有办法在执行方法后结束超级用户会话?
我正在开发一个小应用程序,它将已安装的应用程序显示为微调器中的列表.只有应用程序名称显示为微调器值.每当我从微调器中选择一个应用程序时,我需要检索所选应用程序的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类获取应用程序的名称.
我正在开发一个小应用程序,它只列出那些连接到互联网的应用程序.如何从Packageinfo类中读取android清单文件以编程方式访问每个应用程序的权限设置?
private void getWebApps() {
// TODO Auto-generated method stub
PackageManager packageManager=this.getPackageManager();
List<PackageInfo> applist=packageManager.getInstalledPackages(0);
Iterator<PackageInfo> it=applist.iterator();
while(it.hasNext()){
PackageInfo pk=(PackageInfo)it.next();
String appname=pk.applicationInfo.loadLabel(packageManager).toString();
installedapplist.add(appname);
}
Run Code Online (Sandbox Code Playgroud)
在上面的代码中,"installedapplist"是一个存储应用程序名称的arrayList.但在添加到列表之前,我只需要检查那些访问互联网的应用程序.任何人都可以帮我检查权限吗?
我开发了一个执行一些网络活动的Android应用程序.在类中,我实现了日志消息,如详细,调试,信息,警告和错误.但是当我用参数-d打开logcat时,它列出了来自设备的整个日志消息.因此很难跟踪我的应用程序的日志消息.有没有办法从整个logcat输出中过滤我的应用程序的日志消息?