各位大侠,android 关闭指定包名的程序源码,要如何实现了。类似一个程序列表,获取包名然后关闭这个程序

各位大侠,android 关闭指定包名的程序源码,要如何实现了。类似一个程序列表,获取包名然后关闭这个程序,第1张

ActivityManager activityManger=(ActivityManager) thisgetSystemService(ACTIVITY_SERVICE);

List<ActivityManagerRunningAppProcessInfo> list=activityMangergetRunningAppProcesses();

for(int i=0;i<listsize();i++)

{

ActivityManagerRunningAppProcessInfo apinfo ==listget(i);

if(apinfoprocessNameequals(new String("包名")))

{

String[] pkgList=apinfopkgList;

for(int j=0;j<pkgListlength;j++)

{

//22以上是过时的,请用killBackgroundProcesses代替

activityMangerkillBackgroundProcesses(pkgList[j]);

}

}

}

在做APP UI自动化的时候,获取APK的包名、Activity信息是最基础的,问开发虽然是最快最简单的方式,但是这样就显得测试不是很专业了。下面我们就来看看应该怎样进行获取。

显示appApackage信息大致如下

第一个,使用re-signjar

把apk扔到打开的re-signjar中,resign不仅会帮我们把apk重签名了,还会帮我们显示出package name&mainActivity。。一举两得有木有

第二个,命令:aapt dump badging apk名

回车,就得到一大串的信息(包名不要傻傻的自己输,找到本地这个apk,直接扔到命令行就可以了---简单粗暴,又保证不会错误,^_^)

先通过下面的getPackages()方法获得所有系统安装的应用,根据打印出来的日志找到你要找的应用的对应的包名,在调用startAppByPackageName()方法启动应用就可以了,主activity不需要的

private ArrayList<PInfo> getPackages() {

ArrayList<PInfo> apps = getInstalledApps();

final int max = appssize();

for (int i=0; i<max; i++) {

appsget(i)prettyPrint();

}

return apps;

}

class PInfo {

private String appname = "";

private String pname = "";

private String versionName = "";

private int versionCode = 0;

private Drawable icon;

private void prettyPrint() {

Loge("zhm",appname + "\t" + pname + "\t" + versionName + "\t" + versionCode);

}

}

private ArrayList<PInfo> getInstalledApps() {

ArrayList<PInfo> res = new ArrayList<PInfo>();

List<PackageInfo> packs = parentgetPackageManager()getInstalledPackages(0);

for(int i=0;i<packssize();i++) {

PackageInfo p = packsget(i);

if (pversionName == null) {

continue ;

}

PInfo newInfo = new PInfo();

newInfoappname = papplicationInfoloadLabel(parentgetPackageManager())toString();

newInfopname = ppackageName;

newInfoversionName = pversionName;

newInfoversionCode = pversionCode;

newInfoicon = papplicationInfoloadIcon(parentgetPackageManager());

resadd(newInfo);

}

return res;

}

public void startAppByPackageName(String packageName){

PackageInfo pi = null;

try {

pi = getPackageManager()getPackageInfo(packageName, 0);

} catch (NameNotFoundException e) {

eprintStackTrace();

}

Intent resolveIntent = new Intent(IntentACTION_MAIN, null);

resolveIntentaddCategory(IntentCATEGORY_LAUNCHER);

resolveIntentsetPackage(pipackageName);

List<ResolveInfo> apps = getPackageManager()queryIntentActivities(resolveIntent, 0);

ResolveInfo ri = appsiterator()next();

if (ri != null ) {

String packageName1 = riactivityInfopackageName;

String className = riactivityInfoname;

Intent intent = new Intent(IntentACTION_MAIN);

intentaddCategory(IntentCATEGORY_LAUNCHER);

intentaddFlags(IntentFLAG_ACTIVITY_NEW_TASK);

ComponentName cn = new ComponentName(packageName1, className);

intentsetComponent(cn);

startActivity(intent);

}

}

以上就是关于各位大侠,android 关闭指定包名的程序源码,要如何实现了。类似一个程序列表,获取包名然后关闭这个程序全部的内容,包括:各位大侠,android 关闭指定包名的程序源码,要如何实现了。类似一个程序列表,获取包名然后关闭这个程序、查看APK包的appApackage信息和主Activity信息、无源码的apk,获取package name&mainActivity等相关内容解答,如果想了解更多相关内容,可以关注我们,你们的支持是我们更新的动力!

欢迎分享,转载请注明来源:内存溢出

原文地址: http://outofmemory.cn/web/9448367.html

(0)
打赏 微信扫一扫 微信扫一扫 支付宝扫一扫 支付宝扫一扫
上一篇 2023-04-28
下一篇 2023-04-28

发表评论

登录后才能评论

评论列表(0条)

保存