2013-04-24 44 views
1

我正在設計一個Android移動應用程序。 該應用程序使用信用系統。用戶可以通過Google在應用帳單服務中購買點數。 此外,當用戶安裝應用程序時,它獲得一些免費的信用。Android - 識別應用程序的重新安裝

用戶信用存儲在Web服務器中。當用戶下載應用程序時,創建UUID並將其存儲在應用程序&服務器中。

我需要以某種方式檢測用戶何時卸載應用程序,並重新安裝它,以便接收免費開始信用(重新安裝將創建一個新的UUID,因此它將像一個新用戶)。

我一直在尋找一個手機或用戶標識符,但我讀過,這不是一個很好的主意(http://android-developers.blogspot.com.es/2011/03/identifying-app-installations.htmlIs there a unique Android device ID?How to find serial number of Android device?)。此外,爲了使用不屬於自己的帳戶,這可能容易被黑客入侵。

以某種方式解決這個問題?也許使用應用內結算? 我向任何解決方案開放。

感謝

回答

2

當你是完全正確的(識別設備也沒用)我會使用谷歌的用戶帳戶,實現人的識別:

http://developer.android.com/training/id-auth/identify.html

的AccountManager的AccountManager = AccountManager.get(getApplicationContext( ));

Account[] accounts = accountManager.getAccountsByType("com.google"); 

for (Account a: accounts) { 
    if (a.name.contains("@gmail.com")) { 
     return a.name; 
    } 
} 

這可能會非常棘手,但可以讓你從下載的應用中的相同Googkle Play帳戶的標識reisntall。

0

爲什麼不使用IMEI。很容易獲得。這很難改變,在很多國家它是非法的(防止電話搶劫)。我們將它用於很多目的。 而你只需要一個額外的權限READ_PHONE_STATE。 (大多數用戶不抱怨)

在極少數設備中它可能會返回NULL,在這種情況下,您應該準備好並測試另一個唯一標識符,如序列號Mac地址。 Android ID或UUID。 正如你所說,這最後的標識符更容易被黑客攻擊,但由於只有很少的設備是不太可能有黑客問題。

解決方案更多關於設計。以視頻遊戲爲例,如果您重新安裝遊戲以獲得免費的虛擬現金,您也將刪除您的存款,以便您從零開始,以相同數量的現金結束。由於玩家之間沒有現金轉移,所以不能被利用。

如果您正在提供Web服務。您也可以在每個請求中檢查IP。因此,請跟蹤請求金額和總信用額。這與IMEI一起。 最後,如果你相信真的很重要,你可以申請一張信用卡(不收費),以防止同一用戶的多個帳戶。對於大多數服務是不必要的,因爲您的用戶較少,並且可能最終變得更糟。

相關問題