我们如何知道APK的安装源



我了解到,Android Play Store不仅仅是我们可以部署APK文件的地方,而且还有很多。

现在我计划在以下位置部署我的APK:

  1) Amazon AppStore
  2) Opera Mobile Store
  3) Samsung Apps Store
  4) NokiaX.
  5) Android Play Store (Already deployed, also tracking)

现在的问题是,我如何知道我的应用程序的安装来源?

我想看看这个应用程序是从Android Play StoreAmazon AppstoreOpera Mobile Store还是Samsung Apps store等安装的。。。。

以下链接可能有助于亚马逊应用程序的安装:

安卓安装源

感谢您的帮助。

这方面没有API。你无法知道apk是侧面加载的还是从商店安装的。不能100%确定某些商店是否有某种客户端数据库,但并非所有商店都有。

假设你使用Gradle,你可以为每个商店使用不同的产品口味。您可以为每个风格创建一个资源文件,然后在运行时读取该资源的值,以确定您正在运行的风格。每个风格只需要一个额外的资源XML文件,并在build.gradle中定义这些风格。在进行这些修改后构建应用程序将导致每个存储区有1个APK,除了一个资源值之外,其余都是相同的。

http://tools.android.com/tech-docs/new-build-system/user-guide#TOC-产品口味

像这样的。。。将这些添加到您的构建中。gradle:

   android {
       productFlavors {
        amazon {}
        opera {}
        samsung {}
        nokiax {}
        google {}
       }
   }

您添加的每个风味的资源文件app/src/flavor/res/values/store.xml(例如app/src/nokiax/res/values/store.xml(

<?xml version="1.0" encoding="utf-8"?>
<resources>
    <string name="store_identifier">nokiax</string>
</resources>

现在,当您读取资源"store_identifier"的值时,您可以检测您正在运行的口味,从而推断出它是从哪个商店安装的。不过,您可能希望使用整数资源而不是字符串。

通过这些修改,构建应用程序将产生5个APK文件(例如app_nokiax_release.APK、app_google_release.APK…(,您可以将每个文件部署到各自的存储

您可以使用InstallSourceInfo 检查API 30级及以上的安装源代码

    val sourceInfo = applicationContext.packageManager.getInstallSourceInfo(applicationContext.packageName)
    val installSourcePackageName = sourceInfo.initiatingPackageName

相关内容

  • 没有找到相关文章

最新更新