`
stone02111
  • 浏览: 212313 次
  • 性别: Icon_minigender_1
  • 来自: 上海
社区版块
存档分类
最新评论

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

 
阅读更多

做手机开发,想必都希望获取手机号码吧,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>

分享到:
评论

相关推荐

Global site tag (gtag.js) - Google Analytics