问:
最近遇到一个棘手的问题。我在sd卡上有一个安装包(xxxx.apk)请问我如何得到自己的原始安装包的名称?另外补充一下,如果我有个程序叫xxxx.apk,我手动将其改成xxxx123.apk以后通过 PackageManager 得到的为什么还是xxxx.apk而不是xxxx123.apk呢?请指点一下吧,万分感谢。
答案列表:
用PackageManager获取ApplicationInfo 对象 里面有个sourceDir就是安装路径。另外你改apk名字 是没有的 需要重新安装。
PackageManager 通过什么函数得到的xxx.apk啊,好像没用到过。
不过,PackageManager最终可以得到应用包名,例如:com.android.test,这是AndroidManifest.xml中的package定义的名称。
如果你说的是这个的话,例如:你的xxx.apk名是com.android.test.apk,你改文件名,对程序取出来的没有影响。
我也是通过sourceDir获得的安装路径。但是都是在data/app下面的!这不是我想要的结果,我想得到我原始安装文件的文件名。data/app下得到的文件名跟我实际的文件名不是一回事儿的。如:我文件名siWatcher123.apk 然而安装以后的文件名为com.siWatcher.apk。我想得到siWather123.apk这个文件名。请问怎么得到啊
那个安装的文件名,是得不到的,不会被记录下来。除非安装的时候 ,你去建立一个对应关系,储存起来。还有个办法,就是遍历所以sd卡里的apk文件,然后解包,取出package name与安装的应用的package name比对。