3

Android 的 PackageManager 类有 currentToCanonicalPackageNames() 和 canonicalToCurrentPackageNames() 方法。规范的包名到底是什么?它在哪里使用(它的目的是什么)?它何时与当前的包名称不同?

例如,在我的 Nexus S 上,浏览器应用程序的当前包名称是“com.google.android.browser”,其规范名称是相同的“com.google.android.browser”。对于我检查过的其他一些应用程序,我也得到了相同的当前和规范包名称。developer.android.com 和源代码都没有给我解释什么是规范包名称。希望这有助于更好地理解我上面的问题。

4

1 回答 1

3

这是开发人员文档:

http://developer.android.com/reference/android/content/pm/PackageManager.html

公共抽象字符串 [] currentToCanonicalPackageNames (字符串 [] 名称)

Added in API level 8
Map from the current package names in use on the device to whatever the current canonical name of that package is.

Parameters
names   Array of current names to be mapped.
Returns
Returns an array of the same size as the original, containing the canonical name for each package.

公共抽象 String[] canonicalToCurrentPackageNames (String[] 名称)

Added in API level 8
Map from a packages canonical name to the current name in use on the device.

Parameters
names   Array of new names to be mapped.
Returns
Returns an array of the same size as the original, containing the current name for each package.

查看源的此链接以获得更好的理解: https ://android.googlesource.com/platform/frameworks/base/+/483f3b06ea84440a082e21b68ec2c2e54046f5a6/core/java/android/app/ApplicationPackageManager.java

请参考这个 StackOverflow 问题:如何在 Android 中获取默认应用程序包的规范名称

于 2013-01-13T17:44:45.313 回答