获取手机基本信息
来源:互联网 发布:网络教育一年考几次 编辑:程序博客网 时间:2024/06/06 19:37
获取手机基本信息
TelephonyManager tm = (TelephonyManager) context.getSystemService(Context.TELEPHONY_SERVICE);//注意在AndroidManifest中添加权限
String mobile = (tm.getLine1Number() == null ? "" : tm.getLine1Number());
String imsi = (tm.getSubscriberId() == null ? "" : tm.getSubscriberId());
String imei = (tm.getDeviceId() == null ? "" : tm.getDeviceId());
String operator = (tm.getNetworkOperatorName() == null ? "":tm.getNetworkOperatorName());
String version = (Build.VERSION.RELEASE == null ? "" : Build.VERSION.RELEASE);
String model = (Build.MODEL == null ? "" : Build.MODEL);
获取地址位置,辛苦代码大发送。
private Context context;
public static String LATITUDE = "latitude";
public static String LONGITUDE = "longitude";
public static String PROVINCE = "province";
public static String CITY = "city";
public PhoneLocation(Context iContext) {
context = iContext;
}
public ContentValues getLocation(){
ContentValues contentValue = new ContentValues();
try{
contentValue = getByBasestation();//先使用基于基站的方式
if(contentValue.size() <= 0){
contentValue = getByGPS();////再通过GPS方式
}
}catch(Exception e){
}
return contentValue;
}
// 依赖Google的接口,通过基站(非GPS)获取
private ContentValues getByBasestation() {
ContentValues conValues = new ContentValues();
TelephonyManager tm = (TelephonyManager) context.getSystemService(Context.TELEPHONY_SERVICE);
GsmCellLocation gcl = (GsmCellLocation) tm.getCellLocation();
try {
int cid = gcl.getCid();
int lac = gcl.getLac();
int mcc = Integer.valueOf(tm.getNetworkOperator().substring(0, 3));
int mnc = Integer.valueOf(tm.getNetworkOperator().substring(3, 5));
//组装JSON查询字符串
JSONObject holder = new JSONObject();
holder.put("version", "1.1.0");
holder.put("host", "maps.google.com");
// holder.put("address_language", "zh_CN");
holder.put("request_address", true);
JSONArray array = new JSONArray();
JSONObject data = new JSONObject();
data.put("cell_id", cid); // 25070
data.put("location_area_code", lac);// 4474
data.put("mobile_country_code", mcc);// 460
data.put("mobile_network_code", mnc);// 0
array.put(data);
holder.put("cell_towers", array);
//创建连接,发送请求并接受回应
DefaultHttpClient client = new DefaultHttpClient();
HttpPost post = new HttpPost("http://www.google.com/loc/json");
StringEntity se = new StringEntity(holder.toString());
post.setEntity(se);
HttpResponse resp = client.execute(post);
HttpEntity entity = resp.getEntity();
BufferedReader br = new BufferedReader(new InputStreamReader(
entity.getContent()));
StringBuffer sb = new StringBuffer();
String result = br.readLine();
while (result != null) {
sb.append(result);
result = br.readLine();
}
String rslt = sb.toString();
int start = rslt.indexOf("latitude/":") + "latitude/":".length();
int end = rslt.indexOf(",/"", start);
if(start >= 0 && end >start){
String latitude = rslt.substring(start, end);
conValues.put(LATITUDE, latitude);
}
start = rslt.indexOf("longitude/":") + "longitude/":".length();
end = rslt.indexOf(",/"", start);
if(start >= 0 && end >start){
String longitude = rslt.substring(start,end);
conValues.put(LONGITUDE, longitude);
}
start = rslt.indexOf("region/":/"") + "region/":/"".length();
end = rslt.indexOf("/",", start);
if(start >= 0 && end >start){
String province = rslt.substring(start,end);
conValues.put(PROVINCE, province);
}
start = rslt.indexOf("city/":/"") + "city/":/"".length();
end = rslt.indexOf("/",", start);
if(start >= 0 && end >start){
String city=rslt.substring(start,end);
conValues.put(CITY, city);
}
} catch (Exception e) {
}
return conValues;
}
private ContentValues getByGPS() {
ContentValues conValues = new ContentValues();
LocationManager locationManager = (LocationManager) context.getSystemService(Context.LOCATION_SERVICE);
Criteria criteria = new Criteria();
// 获得最好的定位效果
criteria.setAccuracy(Criteria.ACCURACY_FINE);
criteria.setAltitudeRequired(false);
criteria.setBearingRequired(false);
criteria.setCostAllowed(false);
// 使用省电模式
criteria.setPowerRequirement(Criteria.POWER_LOW);
// 获得当前的位置提供者
String provider = locationManager.getBestProvider(criteria, true);
// 获得当前的位置
Location location = locationManager.getLastKnownLocation(provider);
// ע注意location为空的处理办法
if(location != null){
// 获得当前位置的纬度
Double latitude = location.getLatitude();
// 获得当前位置的经度
Double longitude = location.getLongitude();
conValues.put(LATITUDE, latitude);
conValues.put(LONGITUDE, longitude);
// 获取显示位置
Geocoder gc = new Geocoder(context);
List<Address> addresses = null;
try {
addresses = gc.getFromLocation(location.getLatitude(),
location.getLongitude(), 1);//走gprs,此处不通
} catch (IOException e) {
e.printStackTrace();
}
if(addresses != null){
if (addresses.size() > 0) {
conValues.put(PROVINCE, addresses.get(0).getLocality());
conValues.put(CITY, addresses.get(0).getFeatureName());
}
}
}
return conValues;
}
- 获取手机基本信息
- 获取android手机基本信息
- android获取手机基本信息
- 获取android手机基本信息
- 获取android手机基本信息
- android获取手机基本信息
- Android获取手机的基本信息
- Android开发(42) 获取android手机基本信息
- Android 获取手机的一些基本信息
- 获取手机基本信息的工具类
- Android 获取手机的一些基本信息类
- iOS 常用技术 — 获取手机基本信息
- 获取手机的基本信息和手机型号
- Android 获取手机基本信息,版本号,制造商,
- 安卓学习笔记---【Android】获取手机的基本信息
- 分享一些获取手机基本信息和apk信息的函数
- Android中获取手机联系人的基本信息的实现
- android Build手机基本信息
- 辞职后的第二天
- P2P原理详解与实现
- Delphi 项目迁移到 Tiburon(Delphi2009,Delphi2010) 中的注意事项
- 几款整站抓取的工具
- struts2 标签
- 获取手机基本信息
- 使用Carlos Antollini封装的ADO2类示例
- 欧美企业开发部门内容
- 国内外安全网站网址大集合 - 转帖 - 很多已经失效了
- Android 打包so动态库文件到APK
- C++ 静态成员变量 嵌套类分配回收内存
- android logging system
- 专业
- 棋盘覆盖问题