我正在嘗試創建一個只允許每個設備使用一個帳戶的應用程序。現在我想知道的是一個永不改變的手機的屬性。起初我以爲我可以在我的數據庫中保存一個設備的MAC地址,但是當我們嘗試以編程方式訪問MAC地址時,我讀到了在android中知道的SO中的一個問題,我們得到一個每個設備都相同的常量。 我想知道從來沒有改變Android設備的屬性可以通過編程方式訪問。我怎麼知道我的應用程序以前安裝在手機上?
同樣在未來我想爲iOS開發該應用程序,是否存在與編程相同的iOS電話不變屬性? 謝謝。
我正在嘗試創建一個只允許每個設備使用一個帳戶的應用程序。現在我想知道的是一個永不改變的手機的屬性。起初我以爲我可以在我的數據庫中保存一個設備的MAC地址,但是當我們嘗試以編程方式訪問MAC地址時,我讀到了在android中知道的SO中的一個問題,我們得到一個每個設備都相同的常量。 我想知道從來沒有改變Android設備的屬性可以通過編程方式訪問。我怎麼知道我的應用程序以前安裝在手機上?
同樣在未來我想爲iOS開發該應用程序,是否存在與編程相同的iOS電話不變屬性? 謝謝。
爲此,您必須區分設備。
是Android,您可以使用設備ID
對於iOS,您可以使用供應商ID link。
對於IOS:當您的應用程序被刪除並重新安裝後,供應商ID將發生變化,因此最好使用以下代碼將您的供應商ID存儲在鑰匙串中。
-(NSString *)getUniqueDeviceIdentifier
{
NSString *yourAppName=[[[NSBundle mainBundle] infoDictionary] objectForKey:(NSString*)kCFBundleNameKey];
NSString *applicationUUIDStr = [SSKeychain passwordForService:appName account:@「Your_App_Name」];
if (applicationUUIDStr == nil)
{
applicationUUIDStr = [[[UIDevice currentDevice] identifierForVendor] UUIDString];
[SSKeychain setPassword:strApplicationUUID forService:appName account:@"Your_App_Name"];
}
return applicationUUIDStr;
}
我嚴格希望每個設備的一個帳戶。人們很快就會發現這件事,並可以爲每個設備創建多個帳戶。 –
使用供應商ID。這是蘋果提供的UDID的替代品。 –
但是android手機呢? –
我很肯定這幾天你可以使用mac地址,但是如果沒有你嘗試過IMEI,我不知道這將如何完成。
https://stackoverflow.com/q/10831578/4961540。這個問題從棉花糖說是不允許的,雙SIM卡手機每個SIM卡插槽有不同的IMEI。 –
該應用可能會出售我的手機選項,而第二手用戶無法使用它。 –
看看[Anthony] Forlooney [https://stackoverflow.com/a/2785493/6950238]的答案(https://stackoverflow.com/users/166712/anthony-forloney)。 –
它說我們應該使用設備ID,但它可能會改變出廠重置。 –