2016-08-12 33 views
0

我有一個appstore,我希望與Google Play商店和亞馬遜商店具有相同的功能,當調用getInstallerPackageName()時,它們具有唯一值。像從亞馬遜安裝的應用程序將返回com.amazon.venezia,並從谷歌播放安裝的應用程序將返回com.android.vending如何區分安裝的應用程序是否來自我或不是

我可以這樣做嗎?所以當調用getInstallerPackageName()從我的appstore下載並安裝的應用程序將返回例如com.myapp.vending

另外,我知道調用getInstallerPackageName()會返回null,如果應用程序是sideload,但可能有情況下,應用程序可以從另一個第三方來源而不是從我的應用程序下載和安裝。調用getInstallerPackageName()時,安裝此A應用程序的兩種方式都會返回null。

+0

的可能的複製http://stackoverflow.com/questions/9146820/ set-installer-package-value-in-ge-getinstallerpackagename) –

回答

-1

我會爲此使用Android Studio風格。在gradle中:

android { 
    ... 
    productFlavors { 
     flavor1 { 
      applicationId "com.example.flavor1" 
     } 

     flavor2 { 
      applicationId "com.example.flavor2" 
     } 
    } 
} 

在編譯每種風味時,您將得到不同的apks。

+0

請閱讀問題。這根本不是OP所問的。 –

2

要設置安裝程序包名稱,首先需要使用Intent安裝應用程序,因爲它似乎已經解決了。安裝成功後,您可以使用適當的參數調用setInstallerPackageName()

來源:

Install Application programmatically on Android

PackageManager.setInstallerPackageName()

([在getInstallerPackageName()將被返回集 「安裝程序」 包值]
+0

我正在通過拋出你提供的鏈接等意圖來做安裝提示。那麼在調用'getInstallerPackageName()'的時候會拋出我的清單中包名? – user1865027

+0

@ user1865027我不完全確定。我建議你自己測試一下。您可以製作一個虛擬應用程序以與安裝程序一起安裝。 –

+0

不,它不工作。我找不到一種方法來設置InstallerPackageName。 packageManager具有該方法,但在安裝後設置它沒有意義。 – user1865027

相關問題