我需要檢測我的應用程序是從谷歌播放還是其他市場安裝,我怎麼能得到這些信息?如何知道一個應用程序是從谷歌播放或側裝?
回答
PackageManager
類提供了getInstallerPackageName方法,該方法會告訴您安裝您指定的軟件包的軟件包名稱。側裝應用程序不會包含值。
編輯:注意@mttmllns'answer below關於亞馬遜應用商店。
而FYI apparently亞馬遜商店的最新版本最終設置PackageManager.getInstallerPackageName()
到"com.amazon.venezia"
以及與Google Play的"com.android.vending"
對比。
無法對類型爲PackageManager的非靜態方法getInstallerPackageName(String)進行靜態引用。 –
每個appstore在Playstore上都有自己的marketapp,然後安裝它們的apks(包)。包管理器getInstaller ...()返回安裝給定apk的marketapp的包名稱。例如。 com.amazon.venezia是amazon marketapp的軟件包名稱。非常聰明,因爲PlayStore可以控制哪些市場應用程序是可信的。這旨在最終防止所有不可信的sideloads。注意到新的android操作系統版本的採用正在急劇下降。 KitKat可能成爲事實標準。 –
我用這個代碼來檢查,如果構建是從商店下載或側載:
public static boolean isStoreVersion(Context context) {
boolean result = false;
try {
String installer = context.getPackageManager()
.getInstallerPackageName(context.getPackageName());
result = !TextUtils.isEmpty(installer);
} catch (Throwable e) {
}
return result;
}
- 1. 從谷歌應用程序ID播放
- 2. 從谷歌播放獲取Android應用程序的第一個安裝日期
- 3. 如何從谷歌創建動態應用程序播放
- 4. 谷歌播放的應用程序
- 5. 如何檢查應用程序是否從谷歌播放帳戶安卓android
- 6. Programmaticaly從谷歌播放安裝應用程序並得到迴應
- 7. 如何在谷歌添加應用程序播放私人頻道
- 8. 如何更新谷歌播放應用程序
- 9. 如何在沒有谷歌播放的應用程序購買?
- 10. 如何解決「設備在這個應用程序中不兼容」?當應用程序安裝谷歌播放
- 11. 如何安裝谷歌播放服務?
- 12. 谷歌地圖發佈應用程序谷歌地圖V2谷歌播放
- 13. 無法從谷歌播放應用程序
- 14. 從谷歌下載後,應用程序無法工作播放
- 15. 從谷歌播放商店獲取應用程序的截圖
- 16. 如何以編程方式從谷歌播放下載Android應用程序?
- 17. Android的YouTube播放器應用程序,谷歌播放拒絕後臺播放
- 18. 當從谷歌安裝應用程序播放獲取錯誤代碼-505
- 19. 如何更新不在谷歌播放的應用程序,我店或windows店
- 20. android:跟蹤從谷歌播放安裝
- 21. 評分按鈕:可以知道用戶是否在谷歌播放中投票了您的應用程序?
- 22. 如何獲得應用程序圖標從谷歌播放動態
- 23. 谷歌如何知道我?
- 24. 在應用程序結算和上傳一個應用程序在谷歌播放整個過程?
- 25. 如何從iPod應用程序中的iPod庫播放歌曲?
- 26. 通知聲音如何從應用程序資源中播放?
- 27. 應用程序如何知道組件是一個頁面
- 28. 如何從谷歌片addMarker到谷歌應用程序腳本
- 29. 如何知道谷歌apis是否安裝在手機上?
- 30. 創建一個谷歌播放應用程序下載的直接鏈接
它非常好。 – ttom
@AbhishekB你的Android版本是什麼?你在模擬器中嗎? – MattC
@AbhishekB我不知道一種方法來找到側裝應用程序的起源。我不確定這是如何被跟蹤的,因爲它只是一個APK文件,它被加載到設備的某個地方,然後可能通過PackageManager進行安裝。 – MattC