我希望能够通过移动Safari获取iPhone的UDID。我正在使用.mobileconfig
<plist version="1.0">
<dict>
<key>PayloadContent</key>
<dict>
<key>URL</key>
<string>http://192.168.12.45:8080/enroll/retrieve</string>
<key>DeviceAttributes</key>
<array>
<string>UDID</string>
<string>SERIAL</string>
<string>CHALLENGE</string>
<string>IMEI</string>
<string>ICCID</string>
<string>VERSION</string>
<string>PRODUCT</string>
<string>DEVICE_NAME</string>
<string>MAC_ADDRESS_EN0</string>
</array>
</dict>
<key>PayloadOrganization</key>
<string>Org</string>
<key>PayloadDisplayName</key>
<string>Profile Service</string>
<key>PayloadVersion</key>
<integer>1</integer>
<key>PayloadUUID</key>
<string>D6F1B2A3-0039-48B5-915B-8E2B35663816</string>
<key>PayloadIdentifier</key>
<string>Identifer</string>
<key>PayloadDescription</key>
<string>This temporary profile will be used to find and display your current device's UDID.</string>
<key>PayloadType</key>
<string>Profile Service</string>
</dict>
</plist>
retrieve.php
<?php
$data = file_get_contents('php://input');
header('Location: http://192.168.12.45/enroll/info?'.$data, true, 301);
?>
“info”是一个目录而不是页面,在该目录下我创建了index.php文件,我可以通过$_GET获取数据。
但是我无法通过Java Servlet获取数据。
我已经在mobileconfig文件中更改了Servlet URL,但是我无法从Java中获取任何值。
检索Java代码
Enumeration headerNames = request.getHeaderNames();
while (headerNames.hasMoreElements()) {
String paramName = (String) headerNames.nextElement();
String paramValue = request.getHeader(paramName);
System.out.println("paramValue :" + paramValue);
}
输出:
paramValue :192.168.12.45:8080
paramValue :keep-alive
paramValue :gzip, deflate
paramValue :Mozilla/5.0 (iPhone; CPU iPhone OS 7_1_1 like Mac OS X) AppleWebKit/537.51.2 (KHTML, like Gecko) Version/7.0 Mobile/11D201 Safari/9537.53
paramValue :en-us
paramValue :text/html,application/xhtml+xml,application/xml;q=0.9,*/*;q=0.8
出现了如下错误
然而我想要用Java Servlet获取IMEI。 我想将上述PHP代码更改为Java Servlet。 如何解决并安装简档以获取UDID和IMEI。