做手机开发,想必都希望获取手机号码吧,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卡所在国家、运营商编号。

Android 获取设备各种信息以及其它

对了,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. C语言函数以及函数的使用
  2. android 调用draw(canvas) 函数自动退出
  3. Xposed框架之函数Hook学习
  4. android中去掉空格--trim函数
  5. Android三角函数
  6. ISurfaceComposer接口有13个成员函数
  7. Android jni系统变量、函数、接口定义汇总
  8. sscanf函数引起android 5.0卡死,C++中慎用C库函数

随机推荐

  1. Dagger2 在 Android(安卓)项目的正确使用
  2. Android(安卓)Memory Management, OutOfM
  3. 工程师淘金:开发Android主攻四大方向
  4. android进程和线程模型
  5. Android之如何判断定位是否开启及定位模
  6. Android是什么 之三-------手机之硬件形
  7. Android下添加新的自定义键值和按键处理
  8. 用ndk环境编译android可用的so库
  9. android进行主题切换不重启整个应用(styl
  10. 【Android(安卓)内存优化】Bitmap 硬盘缓