android的TelephoneManager

详细信息见; 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

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值