详细信息见; http://blog.csdn.net/aiqing0119/article/details/7842557
1.Call
2.DATA
3.NETWORK
4.PhoneType
5.SMS
one 获得手机的串号IMEI
IMEI(International Mobile Equipment Identity)是国际移动设备身份码的缩写,国际移动装备辨识码,是由15位数字组成的"电子串号",它与每台手机一一对应,而且该码是全世界唯一的。每一部手机在组装完成后都将被赋予一个全球唯一的一组号码,这个号码从生产到交付使用都将被制造生产的厂商所记录。手机用户可以在手机中查到自己手机的IMEI码。
<uses-permission android:name="android.permission.READ_PHONE_STATE"/>
//新建一个Telephonemanager的对象:
TelephonyManager telephonemanage = (TelephonyManager) context.getSystemService(Context.TELEPHONY_SERVICE);
String chuahao=telephonemanage.getDeviceId();
two 获得手机的IMSI
国际移动用户识别码(IMSI:International Mobile Subscriber Identification Number)是区别移动用户的标志,储存在SIM卡中,可用于区别移动用户的有效信息。其总长度不超过15位,同样使用0~9的数字。其中MCC是移动用户所属国家代号,占3位数字,中国的MCC规定为460;MNC是移动网号码,由两位或者三位数字组成,中国移动的移动网络编码(MNC)为00;用于识别移动用户所归属的移动通信网;MSIN是移动用户识别码,用以识别某一移动通信网中的移动用户。
//这个经电信的手机测试获取到的是状态信息里的MIN号
String imsi = tm.getSubscriberId();
three 拿到手机号码
注意,手机号码不是所有的都能获取。只是有一部分可以拿到。这个是由于移动运营商没有把手机号码的数据写入到sim卡中。这个就像是一个变量,当移动运营商为它赋值了,它自然就会有值。不赋值自然为空。这就是为什么很多人得不到本机号码的原因
String tel = tm.getLine1Number();
four
手机型号 Build.MODEL
sdk版本 Build.VERSION.SDK
frimware版本号(系统版本号) Build.VERSION.RELEASE
text1 = (TextView) findViewById(R.id.text1);
TelephonyManager tm = (TelephonyManager) this.getSystemService(Context.TELEPHONY_SERVICE);
String imei = tm.getDeviceId();
String imsi = tm.getSubscriberId();
String number = tm.getLine1Number();
text1.setText(imei+": \n"+imsi+":\n"+number+
"Product Model: " + android.os.Build.MODEL + ","
+ android.os.Build.VERSION.SDK + ","
+ android.os.Build.VERSION.RELEASE);
five 安卓拨号和暗码
安卓拨号的三种方式
// ACTION_VIEW
Intent intent = new Intent(Intent.ACTION_VIEW, Uri.parse("tel:" + phoneNum));
startActivity(intent);
// ACTION_DIAL
Intent intent = new Intent(Intent.ACTION_DIAL, Uri.parse("tel:" + phoneNum));
startActivity(intent);
// ACTION_CALL
Intent intent = new Intent(Intent.ACTION_CALL, Uri.parse("tel:" + phoneNum));
startActivity(intent);
区别:
这三种方式均可以实现调取拨打电话页面的功能,前两种只是调取拨打电话的页面,并不会立刻拨打出去,第三种会直接拨打电话。
如何通过拨号盘启动应用:
1:注册一个receiver, action支持android.provider.Telephony.SECRET_CODE,并写入你的启动暗码,如下
<receiver
android:name=".App.SecretCodeReceiver"
android:enabled="true"
android:exported="true">
<intent-filter>
<action android:name="android.provider.Telephony.SECRET_CODE" />
<data android:scheme="android_secret_code" android:host="5858" />
</intent-filter>
</receiver>
2:实现这个 receiver,并在onReceive做你想要的操作,比如启动一个activity之类的
package utils.bobo.com.boboutils.App;
import android.content.BroadcastReceiver;
import android.content.Context;
import android.content.Intent;
import utils.bobo.com.boboutils.DemosActivity;
public class SecretCodeReceiver extends BroadcastReceiver {
public SecretCodeReceiver() {
}
@Override
public void onReceive(Context context, Intent intent) {
Intent activityIntent = new Intent(context, DemosActivity.class);
activityIntent.setFlags(Intent.FLAG_ACTIVITY_NEW_TASK);
context.startActivity(activityIntent);
}
}
然后就可以通过输入*##5858##*,就能启动对应的activity了
源码分析之Android通过Dialer实现暗码启动:https://blog.csdn.net/u013398960/article/details/72899353