做手机开发,想必都希望获取手机号码吧,android中有一个类android.telephony.TelephonyManager提供这个功能。

TelephonyManager tm = (TelephonyManager)this.getSystemService(Context.TELEPHONY_SERVICE);
numberText.setText(tm.
getLine1Number());

红色标记函数能够获取本机号码。

除此之外,TelephonyManager类还提供了多种获取手机信息的函数,入imeiimsi等。、

看代码:

package com.pingan.innovation;

import android.app.Activity;
import android.content.Context;
import android.os.Bundle;
import android.telephony.TelephonyManager;
import android.widget.TextView;

public class PhoneInfo extends Activity {
private TextView numberText;
private TextView imeiText;
private TextView onText;
private TextView snText;
private TextView imsiText;
private TextView ssText;
private TextView ntText;


@Override
public void onCreate(Bundle savedInstanceState) {
super.onCreate(savedInstanceState);
setContentView(R.layout.main);

numberText = (TextView) findViewById(R.id.numberText);
imeiText = (TextView) findViewById(R.id.imeiText);
onText = (TextView) findViewById(R.id.onText);
snText = (TextView) findViewById(R.id.snText);
imsiText = (TextView) findViewById(R.id.imsiText);
ssText = (TextView) findViewById(R.id.ssText);
ntText = (TextView) findViewById(R.id.ntText);
TelephonyManager tm = (TelephonyManager)this.getSystemService(Context.TELEPHONY_SERVICE);
numberText.setText(tm.getLine1Number
());
imeiText.setText(tm.
getDeviceId
());
onText.setText(tm.
getNetworkOperatorName
());
snText.setText(tm.
getSimSerialNumber
());
imsiText.setText(tm.
getSubscriberId
());
ssText.setText(tm.
getNetworkCountryIso
());
ntText.setText(tm.
getNetworkOperator());

}
}

以上几个函数分别获取的是:

手机号码、imei、运营商名称、sim卡序列号、IMSIsim卡所在国家、运营商编号。

对了,AndroidManifest.xml里面还需加上:<uses-permission android:name="android.permission.READ_PHONE_STATE" />

这样才能有对手机信息的访问权限。

不过,经过在HTC Hero真机上的测试,发现获取不到手机号码。

Ophone系统的多普达A6188上测试,同样也取不到手机号码。

Build bd = new Build();

String model = bd.MODEL;

TelephonyManager tm = (TelephonyManager) getSystemService(Context.TELEPHONY_SERVICE);

StringBuilder sb = new StringBuilder();

sb.append("/nDeviceId(IMEI) = " + tm.getDeviceId());

sb.append("/nDeviceSoftwareVersion = " + tm.getDeviceSoftwareVersion());

sb.append("/nLine1Number = " + tm.getLine1Number());

sb.append("/nNetworkCountryIso = " + tm.getNetworkCountryIso());

sb.append("/nNetworkOperator = " + tm.getNetworkOperator());

sb.append("/nNetworkOperatorName = " + tm.getNetworkOperatorName());

sb.append("/nNetworkType = " + tm.getNetworkType());

sb.append("/nPhoneType = " + tm.getPhoneType());

sb.append("/nSimCountryIso = " + tm.getSimCountryIso());

sb.append("/nSimOperator = " + tm.getSimOperator());

sb.append("/nSimOperatorName = " + tm.getSimOperatorName());

sb.append("/nSimSerialNumber = " + tm.getSimSerialNumber());

sb.append("/nSimState = " + tm.getSimState());

sb.append("/nSubscriberId(IMSI) = " + tm.getSubscriberId());

sb.append("/nVoiceMailNumber = " + tm.getVoiceMailNumber());

Log.v("DeviceInfo", sb.toString());

Log.v("Model", model);

this.registerReceiver(this.mBatInfoReceiver, new IntentFilter(

Intent.ACTION_BATTERY_CHANGED));//获得电量

BroadcastReceiver mBatInfoReceiver = new BroadcastReceiver() {//广播出电量值

@Override

public void onReceive(Context arg0, Intent intent) {

batterylevel = intent.getIntExtra("level", 0);

updateBatteryStatsBylevel(batterylevel);

TitleInfo.batterylevel = batterylevel;

Log.i("batterylevel_value", String.valueOf(batterylevel));

}

};

package maximyudin.BatteryLevel;

import android.app.Activity;

import android.content.BroadcastReceiver;

import android.content.Context;

import android.content.Intent;

import android.content.IntentFilter;

import android.os.Bundle;

import android.widget.TextView;

public class BatteryLevel extends Activity {

private TextView tvBatteryLevel;

private BroadcastReceiver mBatteryInfoReceiver = new BroadcastReceiver() {

@Override

public void onReceive(Context context, Intent intent) {

String action = intent.getAction();

if (Intent.ACTION_BATTERY_CHANGED.equals(action)) {

int level = intent.getIntExtra("level", 0);

int scale = intent.getIntExtra("scale", 100);

tvBatteryLevel.setText("Battery level: "

+ String.valueOf(level * 100 / scale) + "%");

}

}

};

@Override

public void onResume() {

super.onResume();

registerReceiver(mBatteryInfoReceiver, new IntentFilter(

Intent.ACTION_BATTERY_CHANGED));

}

@Override

public void onPause() {

super.onPause();

unregisterReceiver(mBatteryInfoReceiver);

}

@Override

public void onCreate(Bundle savedInstanceState) {

super.onCreate(savedInstanceState);

setContentView(R.layout.main);

tvBatteryLevel = (TextView) findViewById(R.id.tvBatteryLevel);

}

}

<?xml version="1.0" encoding="utf-8"?>

<LinearLayout xmlns:android="http://schemas.android.com/apk/res/android"

android:orientation="vertical"

android:layout_width="fill_parent"

android:layout_height="fill_parent"

>

<TextView

android:layout_width="fill_parent"

android:layout_height="wrap_content"

android:id="@+id/tvBatteryLevel" android:text="Battery level:"/>

</LinearLayout>

更多相关文章

  1. Android中安装,启动和卸载应用
  2. android 开启本地相册选择图片并返回显示
  3. Android获取 应用程序大小,数据大小,缓存大小
  4. Android(安卓)获取基站信息
  5. android手机两种方式获取IP地址
  6. android 设置时区
  7. Android(安卓)获取通讯录信息
  8. Android获取apk的版本及包名等信息
  9. Android获取本机Mac地址及IP地址方法

随机推荐

  1. 如何让你的Service Mesh不再像个玩具?
  2. nginx的四层转发功能
  3. nginx负载均衡搭建phpmyadmin加入redis了
  4. 威力增强版-OpenShift4的SDN :让我们重新
  5. 2021最佳创新边缘解决方案——摩杜云!
  6. Nginx动静分离
  7. Pycharm最高效的快捷键集合
  8. 容器调度策略:让我们重新认识OpenShift系
  9. 让我们重新认识OpenShift系列1
  10. 用urllib库几行代码实现最简单爬虫