Warning: file_get_contents(/data/phpspider/zhask/data//catemap/3/android/234.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
Android 禁止使用移动设备?_Android_Iphone_Mobile_Blackberry_Windows Phone - Fatal编程技术网

Android 禁止使用移动设备?

Android 禁止使用移动设备?,android,iphone,mobile,blackberry,windows-phone,Android,Iphone,Mobile,Blackberry,Windows Phone,我正在制作一些主要由用户驱动的应用程序,当然这意味着他们将成为麻烦制造者,他们可能会使用脏话将虚假数据输入其中,或者更糟糕的是将有效数据更改为不良数据(即更改为脏话) 当然,我们会采取措施来遏制这种情况,但最终我希望有一天我可以选择禁止某人加入我的申请 我的第一个想法是通过电子邮件地址禁止他们的帐户。我还想,也许除此之外,还要禁止他们的设备 我的问题是,如果他们使用,我可以从他们的手机中使用什么唯一id Andriod Iphone Blackberry Windows Phone 7/8 它

我正在制作一些主要由用户驱动的应用程序,当然这意味着他们将成为麻烦制造者,他们可能会使用脏话将虚假数据输入其中,或者更糟糕的是将有效数据更改为不良数据(即更改为脏话)

当然,我们会采取措施来遏制这种情况,但最终我希望有一天我可以选择禁止某人加入我的申请

我的第一个想法是通过电子邮件地址禁止他们的帐户。我还想,也许除此之外,还要禁止他们的设备

我的问题是,如果他们使用,我可以从他们的手机中使用什么唯一id

Andriod
Iphone
Blackberry
Windows Phone 7/8

它有多独特?它能轻易改变吗

所有这些设备都有具有唯一MAC地址的网络接口,根据定义,MAC地址是恒定的-MAC地址会被烧录到硬件中,并且不容易被欺骗,尤其是在移动设备上。我将散列MAC地址并将其用作密钥。一旦苹果公司禁止使用UDID,iOS操作系统上的做法相当普遍。

对于Windows Phone,您应该可以使用。特别是
DeviceUniqueId
属性


但是要注意,正如他们在那篇文章中所说,如果你使用设备id来禁止用户,那么同一设备的任何未来用户都将被禁止进入你的应用程序,即使他们没有做错任何事情。

有两个标识符可以一起用来识别特定的设备和用户

DeviceUniqueId和WindowsLiveAnonymousId

第一个是设备,如前所述,任何在被禁止用户之后使用设备的人也将被禁止

WindowsLiveAnonymousId对于用户是唯一的。我在3个不同的设备上看到了相同的标识符,对于用户LiveId来说总是相同的

我使用以下两种方法获取这些ID,以识别游戏玩家的领导板:

//Note: to get a result requires ID_CAP_IDENTITY_DEVICE
// to be added to the capabilities of the WMAppManifest
// this will then warn users in marketplace

public static byte[] GetDeviceUniqueId()
{
    byte[] result = null;
    object uniqueId;
    if (DeviceExtendedProperties.TryGetValue("DeviceUniqueId", out uniqueId)) 
        result = (byte[])uniqueId;
    return result;
}

// NOTE: to get a result requires ID_CAP_IDENTITY_USER
//  to be added to the capabilities of the WMAppManifest
// this will then warn users in marketplace

public static string GetWindowsLiveAnonymousId()
{
    string result = String.Empty;
    object anid;
    if (UserExtendedProperties.TryGetValue("ANID", out anid))
    {
        if (anid != null && anid.ToString().Length >= (AnidLength + AnidOffset))
        {
            result = anid.ToString().Substring(AnidOffset, AnidLength);
        }
    }
    return result;
}
它们的用途如下:

string deviceUniqueId = String.Empty;
for (int i = 0; i < GetDeviceUniqueId().GetLength(0); i++)
{
    deviceUniqueId += GetDeviceUniqueId().GetValue(i);
}

DeviceUniqueIDTextBlock.Text = deviceUniqueId;
WindowsLiveAnonymousIDTextBlock.Text = GetWindowsLiveAnonymousId().ToString(CultureInfo.InvariantCulture);
string deviceUniqueId=string.Empty;
for(int i=0;i
去年5月我发了一篇关于获取WP7系统信息的帖子。此代码可在此处找到:


希望这有帮助。

我会使用guid方法。尽管这可以通过卸载和重新安装应用程序来避免。但没有什么是完美的

如何在Windows Phone上创建GUID


如何在Blackberry上创建GUID

“唯一”是一个不可修饰的形容词。不可能限定绝对值。我读了一些关于UDID的文章,但他们没有禁止它们吗。散列只是为了保证它的安全,我想这有点像密码?我以为你会修改mac地址,但我想就像你说的那样,在手机上比在pc上更难做到。你把它散列成“匿名”数据,诸如此类。特别是有一些文章说苹果有一个巨大的数据库,里面有每个人的MAC地址,等等。关于更改,如果你正在编写一个非常安全的应用程序,比如银行应用程序,我会说做一些其他的事情(可能还与用户帐户有关)。对于一个普通的应用程序,我认为这足以作为一个唯一的标识符。