我想从应用程序包名称中获取应用程序名称.有人请告诉我如何才能得到这个.
public class AppInstalledListener extends BroadcastReceiver{
@Override
public void onReceive(Context context, Intent intent) {
// TODO Auto-generated method stub
String action = intent.getAction();
if(action.equals("android.intent.action.PACKAGE_ADDED")){
Logger.debug("DATA:"+intent.getData().toString());
}
if(action.equals("android.intent.action.PACKAGE_REMOVED")){
Logger.debug("DATA:"+intent.getData().toString());
}
if(action.equals("android.intent.action.PACKAGE_REPLACED")){
Logger.debug("DATA:"+intent.getData().toString());
}
}
}
Run Code Online (Sandbox Code Playgroud) 从Android设备programmaticaly检索*.apk文件名需要一些帮助吗?如果我只知道文件名中的一部分,那么任何机构都可以提供一些Android方法,甚至可以在Android下运行shell命令来获取文件位置吗?
另外,如果有一种方法可以找到从市场或外部市场下载后*.apk文件的去向?
先感谢您.
我需要以编程方式阅读apk文件(包括AndroidManifest.xml)的内容。我知道有一些类似的工具apktool,dex2jar,aapt提取的apk的内容,但是,我需要做同样通过Android应用程序。顺便说一下,我的出发点是一个有效的apk文件路径。
我有这个片段.`andPath | 是APK的位置.
PackageInfo info = getPackageManager().getPackageArchiveInfo(andPath, 0);
ApplicationInfo appinfo = info.applicationInfo;
String packageName = getPackageManager().getApplicationLabel(appinfo).toString();
PackageManager pm=getPackageManager();
ApplicationInfo ai;
try {
ai = pm.getApplicationInfo(packageName, 0);
} catch (final NameNotFoundException e) {
ai = null;
}
final String applicationName = (String) (ai != null ? pm.getApplicationLabel(ai) : "(unknown)");
Run Code Online (Sandbox Code Playgroud)
applicationName 返回包名称.
CharSequence c = pm.getApplicationLabel(pm.getApplicationInfo(info.processName,PackageManager.GET_META_DATA));
Run Code Online (Sandbox Code Playgroud)
c返回我null.
有谁知道我在这里缺少什么?