Reputation: 189
Need some help by retrieving *.apk file name from Android device programmaticaly ? Could any body provide some Android methods doing that or even shell commands run under Android to get the file location , if I know just a part from file name ?
Also if there is a way how to find out where the *.apk file went after downloading from Market or outside Market ?
Thank you in advance.
Upvotes: 18
Views: 60548
Reputation: 1138
This gave me path in form /data/app/xxx.apk:
https://developer.android.com/reference/android/content/Context.html#getPackageResourcePath%28%29
Upvotes: 3
Reputation: 55369
List<ApplicationInfo> PackageManager.getInstalledApplications()
will give you a list of the installed applications, and ApplicationInfo.sourceDir
is the path to the .apk file.
PackageManager pm = getPackageManager();
for (ApplicationInfo app : pm.getInstalledApplications(0)) {
Log.d("PackageList", "package: " + app.packageName + ", sourceDir: " + app.sourceDir);
}
Outputs something like this:
package: com.tmobile.themechooser, sourceDir: /system/app/ThemeChooser.apk
package: com.tmobile.thememanager, sourceDir: /system/app/ThemeManager.apk
package: com.touchtype.swiftkey, sourceDir: /data/app/com.touchtype.swiftkey-1.apk
package: com.twitter.android, sourceDir: /data/app/com.twitter.android-2.apk
package: fm.last.android, sourceDir: /data/app/fm.last.android-1.apk
Upvotes: 35
Reputation: 21577
You can also do adb bugreport
and look at the output. You'll want to look for <package name="com.app.package" codePath="path/to/the/app.apk"...
Upvotes: 2
Reputation: 58455
The apps that you download go to /data/app
so using ls
you can get a list of the downloaded apks.
Upvotes: 0