2017-09-10 89 views
0

我正在嘗試創建一個只允許每個設備使用一個帳戶的應用程序。現在我想知道的是一個永不改變的手機的屬性。起初我以爲我可以在我的數據庫中保存一個設備的MAC地址,但是當我們嘗試以編程方式訪問MAC地址時,我讀到了在android中知道的SO中的一個問題,我們得到一個每個設備都相同的常量。 我想知道從來沒有改變Android設備的屬性可以通過編程方式訪問。我怎麼知道我的應用程序以前安裝在手機上?

同樣在未來我想爲iOS開發該應用程序,是否存在與編程相同的iOS電話不變屬性? 謝謝。

+0

該應用可能會出售我的手機選項,而第二手用戶無法使用它。 –

+0

看看[Anthony] Forlooney [https://stackoverflow.com/a/2785493/6950238]的答案(https://stackoverflow.com/users/166712/anthony-forloney)。 –

+0

它說我們應該使用設備ID,但它可能會改變出廠重置。 –

回答

0

爲此,您必須區分設備。

是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; 
} 
+0

我嚴格希望每個設備的一個帳戶。人們很快就會發現這件事,並可以爲每個設備創建多個帳戶。 –

+0

使用供應商ID。這是蘋果提供的UDID的替代品。 –

+0

但是android手機呢? –

0

我很肯定這幾天你可以使用mac地址,但是如果沒有你嘗試過IMEI,我不知道這將如何完成。

+0

https://stackoverflow.com/q/10831578/4961540。這個問題從棉花糖說是不允許的,雙SIM卡手機每個SIM卡插槽有不同的IMEI。 –

相關問題