0

我已经搜索过但找不到这个,虽然主要是知道要搜索什么的挑战,但我敢肯定以前有人问过它。

应用程序如何推断它是在“Google Android”设备还是 AOSP 设备(例如 Kindle Fire 等)上运行?

4

3 回答 3

1

您可以尝试使用AccountManager类枚举设备上的现有帐户:getAccountsByType()com.google ,并作为所需的帐户类型传递。如果没有此类型的帐户,则表示它是 AOSP 设备或用户尚未创建 Google 帐户。

如果这对您来说还不够,您可以使用PackageManager类并使用getPackageInfo()方法查询一些谷歌特定的包。例如,com.android.vending- Google Play 应用程序。

但请注意,这些方法中没有一种可以保证目标设备正在运行 AOSP。

于 2012-09-07T10:47:15.230 回答
0

这不是微不足道的,但大多数应用程序甚至不需要关心。如果这样做,则通常意味着您需要一些独特的功能,因此检查某些功能是否存在更简单,而不是设备上的标签。您也可以检查某些包的存在(如 Google Play),但缺少它并不意味着它自动是 Fire。

于 2012-09-07T10:34:31.620 回答
0

您可以使用 Intent 检查是否可以打开市场 URL。

有关意图附加功能的文档在此处

意图看起来像这样:

try {
  Intent intent = new Intent(Intent.ACTION_VIEW);
  intent.setData(Uri.parse("market://details?id=com.example.android"));
  //you can use any package identifier for the check.
  startActivity(intent);
} catch (ActvitiyNotFoundException anfe) {
  //There's no market installed.
  //So you can guess that you're not on a device with Google experience
}

这种方法的缺点是,如果可用,用户将被带到 Play 商店。

于 2012-09-07T10:34:36.640 回答