【问题标题】:Programmatically determine if application is the MarketPlace version以编程方式确定应用程序是否是 MarketPlace 版本
【发布时间】:2010-10-07 12:16:39
【问题描述】:

我有一个在 MarketPlace 内外提供的应用程序。

有没有办法从代码中确定应用程序的来源?

我有一些间接方法...

1) 我可以简单地推断他们是否勾选了“允许安装非市场应用程序”...

http://developer.android.com/reference/android/provider/Settings.html#ACTION_MANAGE_APPLICATIONS_SETTINGS

2) 或者我可以单独构建并在代码中明确说明。

【问题讨论】:

    标签: android marketplace


    【解决方案1】:

    如果PackageManager.getInstallerPackageName() 为您的应用返回com.google.android.feedback,那么它是由Android Market 安装的。

    【讨论】:

    • 这不可靠 - 我还看到 com.android.vending 针对市场安装的应用程序返回。但是,如果返回null,则可以安全地假设它不是由市场安装的。
    【解决方案2】:

    在每个版本的android:versionName 中明确说明。

    如果代码可供人们编译自己的 APK,请将 android:versionName 设置为“自定义”,并在为市场构建时临时更改它。

    【讨论】:

      【解决方案3】:

      鉴于市场应用程序在您擦除其缓存时甚至不知道应用程序的来源,我非常怀疑是否有任何其他方法可以找到。

      【讨论】:

        猜你喜欢
        • 1970-01-01
        • 2011-10-17
        • 2011-05-06
        • 1970-01-01
        • 1970-01-01
        • 1970-01-01
        • 1970-01-01
        • 2011-09-23
        • 2010-11-11
        相关资源
        最近更新 更多