移动设备识别码重复有三个

(冷眼看人生)
(善待爱情吧)
(有空-先生)
第三方登录:最近看了下获取手机设备ID和手机信息以及SIM的信息例子,主要还是借鉴别人的,现在自己写一下,算是巩固加深了,也希望能给大家一个参考
必要的条件还是一部真机,SIM卡或者UIM卡。
首先,在AndroidMainfest.xml里获取权限
&uses-permission android:name=&android.permission.READ_PHONE_STATE&/&。
其次,新建一个工具类PhoneInfo.java,主要用来获取手机设备信息(附上源码):
package com.wx.
import android.content.C
import android.telephony.TelephonyM
public class PhoneInfo {
private TelephonyMana
private String IMSI;
* 获取手机国际识别码IMEI
PhoneInfo(Context context){
telephonemanager=(TelephonyManager)context
.getSystemService(Context.TELEPHONY_SERVICE);
* 获取手机号码
public String getNativePhoneNumber(){
String nativephonenumber=null;
nativephonenumber=telephonemanager.getLine1Number();
* 获取手机服务商信息
public String
getProvidersName(){
String providerName=null;
IMSI=telephonemanager.getSubscriberId();
//IMSI前面三位460是国家号码,其次的两位是运营商代号,00、02是中国移动,01是联通,03是电信。
System.out.print(&IMSI是:&+IMSI);
if(IMSI.startsWith(&<span style="color:#000&)||IMSI.startsWith(&<span style="color:#002&)){
providerName=&中国移动&;
}else if(IMSI.startsWith(&<span style="color:#001&)){
providerName=&中国联通&;
}else if(IMSI.startsWith(&<span style="color:#003&)){
providerName=&中国电信&;
}catch(Exception e){
e.printStackTrace();
return providerN
* 获取手机信息
public String getPhoneInfo(){
TelephonyManager tm=(TelephonyManager)ctx.getSystemService(Context.TELEPHONY_SERVICE);
StringBuilder sb=new StringBuilder();
sb.append(&\nDeviceID(IMEI)&&#43;tm.getDeviceId());
sb.append(&\nDeviceSoftwareVersion:&&#43;tm.getDeviceSoftwareVersion());
sb.append(&\ngetLine1Number:&&#43;tm.getLine1Number());
sb.append(&\nNetworkCountryIso:&&#43;tm.getNetworkCountryIso());
sb.append(&\nNetworkOperator:&&#43;tm.getNetworkOperator());
sb.append(&\nNetworkOperatorName:&&#43;tm.getNetworkOperatorName());
sb.append(&\nNetworkType:&&#43;tm.getNetworkType());
sb.append(&\nPhoneType:&&#43;tm.getPhoneType());
sb.append(&\nSimCountryIso:&&#43;tm.getSimCountryIso());
sb.append(&\nSimOperator:&&#43;tm.getSimOperator());
sb.append(&\nSimOperatorName:&&#43;tm.getSimOperatorName());
sb.append(&\nSimSerialNumber:&&#43;tm.getSimSerialNumber());
sb.append(&\ngetSimState:&&#43;tm.getSimState());
sb.append(&\nSubscriberId:&&#43;tm.getSubscriberId());
sb.append(&\nVoiceMailNumber:&&#43;tm.getVoiceMailNumber());
return sb.toString();
然后,再在启动的PhoneActivity中,添加调用代码:
package com.wx.
获取手机设备测试信息
* @author wangxiang
import android.os.B
import android.app.A
import android.view.M
public class PhoneActivity extends Activity {
protected void onCreate(Bundle savedInstanceState) {
super.onCreate(savedInstanceState);
setContentView(R.layout.activity_phone);
public boolean onCreateOptionsMenu(Menu menu) {
// I this adds items to the action bar if it is present.
getMenuInflater().inflate(R.menu.phone, menu);
PhoneInfo siminfo=new PhoneInfo(PhoneActivity.this);
System.out.println(&\ngetprovider:&&#43;siminfo.getProvidersName());
System.out.println(&\ngeNativePhoneNumber:&&#43;siminfo.getNativePhoneNumber());
System.out.println(&--------w---x---------&);
System.out.println(&\ngetphoneinfo:&&#43;siminfo.getPhoneInfo());
return true;
第四,完成以上两步就可以在真机上运行了,为了查看输出信息的方便,可以在logcat中,单独查看System.out的信息,
& & & &方法是点击那个绿色的“&#43;”,如图:,
然后在弹出框中的Filter name 和 By log tag里面均填入System.out。
好了,现在可以运行项目了,查看一下logcat结果:
09-17 17:42:49.924: I/System.out(2854): IMSI是:621
09-17 17:42:49.925: I/System.out(2854): getprovider:中国移动
09-17 17:42:49.931: I/System.out(2854): geNativePhoneNumber:
09-17 17:42:49.932: I/System.out(2854): --------w---x---------
09-17 17:42:49.970: I/System.out(2854): getphoneinfo:
09-17 17:42:49.970: I/System.out(2854): DeviceID(IMEI)194
09-17 17:42:49.970: I/System.out(2854): DeviceSoftwareVersion:78
09-17 17:42:49.971: I/System.out(2854): getLine1Number:
09-17 17:42:49.971: I/System.out(2854): NetworkCountryIso:cn
09-17 17:42:49.972: I/System.out(2854): NetworkOperator:46000
09-17 17:42:49.972: I/System.out(2854): NetworkOperatorName:中国移动
09-17 17:42:49.972: I/System.out(2854): NetworkType:2
09-17 17:42:49.972: I/System.out(2854): PhoneType:1
09-17 17:42:49.972: I/System.out(2854): SimCountryIso:cn
09-17 17:42:49.972: I/System.out(2854): SimOperator:46002
09-17 17:42:49.972: I/System.out(2854): SimOperatorName:
09-17 17:42:49.977: I/System.out(2854): SimSerialNumber:
09-17 17:42:49.978: I/System.out(2854): getSimState:5
09-17 17:42:49.978: I/System.out(2854): SubscriberId:621
09-17 17:42:49.979: I/System.out(2854): VoiceMailNumber:null
其中geNativePhoneNumber的&#20540;为空,因为我的手机卡是动感地带的卡,所以无法获取,
这一点可以参考我的上一篇随笔:Android手机号码不是所有的都能获取;
另外我用联通的号码测试了一下,是可以获得号码的。
最后再补充一下以上信息的具体含义:
getNativePhoneNumber获取的手机号
DeviceId(IMEI)手机&国际移动用户识别码
NetworkOperator&移动运营商编号
NetworkOperatorName&移动运营商名称
SimSerialNumber &SimOperator &SimCountryIso &SimSerialNumber &SubscriberId(IMSI) & 关于手机SIM卡的一些详细信息。
本文已收录于以下专栏:
相关文章推荐
Android系统以及设备都有很多的“标识”号,比如常见的IMEI,SerizalNumber,UUID等概念,但是这些都存在一定程度上的不可靠性,到底如何标记一台Android设备?
获取本机号码
TelephonyManager tm = (TelephonyManager)this.getSystemService(Context.TELEPHONY_SERVICE);
&#160; ...
网络绝对是任何系统的核心,对于容器而言也是如此。Docker 作为目前最火的轻量级容器技术,有很多令人称道的功能,如 Docker 的镜像管理。然而,Docker的网络一直以来都比较薄弱,所以我们有必要深入了解Docker的网络知识,以满足更高的网络需求。
Android的java端提供了非常丰富的库,我们可以在native代码中调用java的库。
以下为获取硬件IMEI信息的代码:
JNIEXPORT jstring JNICALL Java_co...
首先,我们要添加了cordova-plugin-device插件,具体流程可以查看ionic开发获取手机设备信息点击打开链接
这篇说明如何获取手机的imei码
我们需要在cordova-plugin-...
using System.Collections.G
using System.L
using System.W
使用到:Jquery.js 以及 Newtonsoft.Json.dll
客户端调用方式:
$(&#ButAjax&).click(function() {
如果在你的项目中,配置的没有报错,但是总是注入进来的都是null的话,可查看配置文件所在的项目是否添加了配置文件中所引用或配置了的项目。还有就是mvc中control中注入都失败了。这个最后还是采用了...
This article was contributed by Chris Maunder.
Environment: VC5.0 SP3, VC6.0, Win95, NT4 If you hav...
1、创建一个mvc的项目
打开VS2013新建项目一个Web项目,框架选.NET Framewok4.5,项目名字为MiniProfilerDemo。如下图:
接下来在...
他的最新文章
讲师:董西成
讲师:唐宇迪
您举报文章:
举报原因:
原文地址:
原因补充:
(最多只允许输入30个字)移动通信国际识别码到底有什么用?其中看以看出手机的好坏吗? - 知乎7被浏览19691分享邀请回答1添加评论分享收藏感谢收起0添加评论分享收藏感谢收起查看更多回答}

我要回帖

更多关于 什么是移动设备识别码 的文章

更多推荐

版权声明:文章内容来源于网络,版权归原作者所有,如有侵权请点击这里与我们联系,我们将及时删除。

点击添加站长微信