1.获取Android手机唯一设备号的方法:
TelephonyManager telephonyManager= (TelephonyManager) this.getSystemService(Context.TELEPHONY_SERVICE);
imei=telephonyManager.getDeviceId();
2.从服务器端读取数据的方法:
public class MainActivity extends NativeActivity{
private UnityPlayer mUnityPlayer;
mUnityPlayer = new UnityPlayer(this);
public void GetDataFromUrl()
{
try {
try {
Text = getJsonContent(url_Share);//获得服务器端的数据(这个数据是String类型的Json格式的)
} catch (Exception e) {
// TODO Auto-generated catch block
e.printStackTrace();
}
} catch (Exception e) {
// TODO Auto-generated catch block
e.printStackTrace();
}
if(Text != null)
{
try {
Text = decrypt(Text);
} catch (Exception e) {
// TODO Auto-generated catch block
e.printStackTrace();
}
mUnityPlayer.UnitySendMessage("Main Camera", "Test2",Text);//与unity通信:调用Main Camera物体上的脚本中Test2方法,传给Test2方法的参数是Text
}
}
//从服务器端获得Json格式的字符串
public static String getJsonContent(String urlStr)
{
try
{// 获取HttpURLConnection连接对象
URL url = new URL(urlStr);
HttpURLConnection httpConn = (HttpURLConnection) url
.openConnection();
// 设置连接属性
httpConn.setConnectTimeout(1500);
httpConn.setDoInput(true);
httpConn.setRequestMethod("POST");
// 获取相应码
int respCode = httpConn.getResponseCode();
if (respCode == 200)
{
return ConvertStream2Json(httpConn.getInputStream());
}
}
catch (MalformedURLException e)
{
// TODO Auto-generated catch block
e.printStackTrace();
}
catch (IOException e)
{
// TODO Auto-generated catch block
e.printStackTrace();
}
return "";
}
private static String ConvertStream2Json(InputStream inputStream)
{
String jsonStr = "";
// ByteArrayOutputStream相当于内存输出流
ByteArrayOutputStream out = new ByteArrayOutputStream();
byte[] buffer = new byte[1024];
int len = 0;
// 将输入流转移到内存输出流中
try
{
while ((len = inputStream.read(buffer, 0, buffer.length)) != -1)
{
out.write(buffer, 0, len);
}
// 将内存流转换为字符串
jsonStr = new String(out.toByteArray());
}
catch (IOException e)
{
// TODO Auto-generated catch block
e.printStackTrace();
}
return jsonStr;
}