【问题标题】:What makes an android app "market" or "non-market"?是什么让安卓应用成为“市场”或“非市场”?
【发布时间】:2013-05-02 22:58:00
【问题描述】:

Android 设备如何将应用识别为“市场”或“非市场”?

情况是我有一个应用程序我想提供给一组客户,而不是整个世界,但不希望他们必须经过额外的步骤来允许他们的设备安装非-市场应用程序。我想通过登录墙后面的公司网站分发它,同时又不失安装 Play 应用的便利性。

专为公司内部分发而设计的私人频道与我的想法不太一样。我通过每个客户的网站向我公司的客户分发产品,每个客户都有很多员工。

我不介意以某种方式向 Google 展示应用以使其签名、密封等。“为什么不直接使用市场”是一个合理的问题,我也在考虑这个选项。

我也不想在此过程中违反 Google 的服务条款。

说明: 我很欣赏到目前为止的答案。我在询问 Android 操作系统用于确定某事物是否为市场应用程序的机制。

【问题讨论】:

  • 这个问题最好在Android developers forum上提问。
  • 基本上没有区别:我将相同的包上传到Google Market和Android PIT,并且可以通过任何其他平台分发这个包。仅当您使用 Application License ManagementIn-App Payment 时,可能会有所不同,因为不同的平台使用不同的库(例如 Google Licensing、Samsung Zirconia、Android坑图书馆,...)。您可以使用我在下面的答案中提供的代码检查源代码。
  • Trinimon,对我而言,相关区别在于非市场安装需要用户允许非市场安装。如果可以的话,我想避免这一步。我知道额外的步骤是为了用户的安全,但在这种情况下,我在没有市场准入的情况下在 Intranet 上提供应用程序。

标签: android google-play


【解决方案1】:

这应该为您提供正确的信息:

PackageManager pm = getPackageManager();
String installationSource = pm.getInstallerPackageName(getPackageName());

结果 com.google.android.feedback 表明该应用是使用 Google Play 安装的。

希望这会有所帮助……干杯!

 

p.s. this related link 看起来很有趣

【讨论】:

  • 我对此表示赞同,因为这是我正在寻找的信息。如果我们可以确认操作系统使用 getInstallerPackageName 来确定它是否是市场应用程序,我会将赞成票变成接受。
【解决方案2】:

“市场”应用是您从受信任的市场(通常是 Google Play,但某些设备(例如 Kindle Fire)允许从亚马逊市场下载)下载的应用,因此在您的情况下,您必须告诉您的用户允许安装非市场应用。

在应用程序而不是网站上显示登录屏幕怎么样?通过这种方式,您可以轻松地将其发布到 Google Play 上。这是如何 类似的应用(比如这个:https://play.google.com/store/apps/details?id=net.intermedia.securisyncinternal.ui

【讨论】:

  • 关于登录屏幕的想法,想象一个应用程序,如果您在 A 公司,作为网站 A 的门户,在 B 公司的网站 B,或在公司 C 的网站 C。如果我提供单个应用通过一个市场,用户安装方便,但需要选择A、B、C网站。如果我通过A、B、C网站为三个公司提供不同配置的应用程序,用户安装会更难,但会自动获取正确的网站。
猜你喜欢
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 2014-03-04
  • 1970-01-01
  • 1970-01-01
  • 2011-06-23
相关资源
最近更新 更多