2010-09-10 38 views
5

我敢肯定,這是非常基本的,但我不知道什麼很要搜索得到一個簡明教程。我想創建一個應用程序,並在Android Market上免費下載。然後,我想創建一個或多個應用程序,這些應用程序只是許可證密鑰,可在免費應用程序中打開某些功能。免費應用程序檢查付費應用程序是否存在於設備上的最佳方式是什麼?有沒有簡單的方法來檢查包名或我是否需要在付費應用程序中創建一個內容提供商,免費應用程序可以調用它來檢查合法性?如何創建一個可下載的許可證密鑰,並檢查它在Android

或者,也許有一些全局內存空間(如應用程序中的偏好),所有的應用程序可以讀/寫。

我知道有一個解決方案,將工作,而且我可以很容易實現 - 已每個付費應用程序調用Web服務時,第一次啓動並註冊該手機的IMEI。這將工作,但需要互聯網接入,這可能會或可能不會方便我的應用程序。

與大多數Android問題一樣 - 不止一種方式可以給皮膚上一隻貓。我在尋找你們認爲最好(也是最安全)的方法。

+0

當然用戶必須下載許可證密鑰的應用程序,這意味着它可以防止其他應用程序突然出現,對於免費解鎖服務,Web服務將是理想的(因爲它可以,如果你使用的全局存儲器類型的解決方案)。 – Blam 2010-09-10 15:20:20

+0

看看這個問題:http://stackoverflow.com/questions/3384457/how-to-check-android-licensing-permission-of-other-applications – Janusz 2010-09-10 15:22:20

+0

感謝您指出我的其他問題。這是我的同樣的問題。 Web服務理念的一個問題是許可證應用程序調用web服務並註冊手機的IMEI,並且在正常情況下效果很好,但如果用戶卸載並退款許可證應用程序會發生什麼情況?我無法知道並取消註冊。不,我認爲免費應用程序需要確保在執行時安裝這些許可證。 – RMS2 2010-09-10 15:55:34

回答

1

一個解決辦法基本上以測試你的「許可證」應用程序仍安裝在手機上。然後,即使用戶更換手機,他仍然可以使用他的Google帳戶安裝許可證應用程序。

你可以用下面的代碼安裝的應用程序列表:

List<ApplicationInfo> list = context.getPackageManager().getInstalledApplications(PackageManager.GET_META_DATA); 

然後,只需找到一個ApplicationInfo其中的packageName構件相當於許可的應用程序之一。