我搜索过但找不到这个,虽然主要是知道要搜索什么的挑战,但我确信之前已被问过。
应用如何推断它是在“Google Android”设备上运行,还是在AOSP设备上运行(例如Kindle Fire等)?
答案 0 :(得分:1)
您可以尝试使用AccountManager
类getAccountsByType()枚举设备上的现有帐户,并根据需要传递com.google
帐户类型。如果没有此类帐户,则表示它是AOSP设备或用户尚未创建Google帐户。
如果这还不够,您可以使用PackageManager
课程并使用getPackageInfo()方法查询某些特定于Google的包。例如,com.android.vending
- Google Play应用。
但请注意,这些方法中没有一个可以保证目标设备正在运行AOSP。
答案 1 :(得分:0)
这不是一件容易的事,但大多数应用程序都不需要关心。如果这样做,那么通常意味着您需要一些独特的功能,因此检查某些功能是否存在更为简单,而不是设备上的标签。您也可以检查是否存在某些软件包(例如Google Play),但缺少该软件包并不意味着它会自动消失。
答案 2 :(得分:0)
您可以使用Intent检查是否可以打开市场网址。
关于意图附加内容的文档是here。
意图如下:
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商店。