2012-09-07 69 views

回答

1

您可以嘗試使用AccountManager類:getAccountsByType()來枚舉設備上的現有帳戶,並將com.google作爲所需的帳戶類型傳遞。如果沒有此類帳戶,則表示它是AOSP設備或用戶尚未創建Google帳戶。

如果對您而言還不夠,您可以使用PackageManager類,並使用getPackageInfo()方法查詢一些Google專用包。例如,com.android.vending - Google Play應用。

但請注意,這些方法中的任何一種都不能保證目標設備正在運行AOSP。

0

這不是微不足道的,但大多數應用程序不需要甚至在乎。如果這樣做,那麼通常意味着您需要一些獨特的功能,因此檢查某些功能是否存在會更簡單,而不是設備上的標籤。您也可以檢查是否存在某些軟件包(例如Google Play),但缺少該軟件包並不意味着它就是Fire。

0

您可以檢查是否可以通過使用意圖打開市場網址。

意向附加檔的文件是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商店,如果它是可用的。