首页 > 代码库 > 第86章、系统服务之TELEPHONY_SERVICE(从零开始学Android)

第86章、系统服务之TELEPHONY_SERVICE(从零开始学Android)

TelephonyManager类主要提供了一系列用于访问与手机通讯相关的状态和信息的get方法。其中包括手机SIM的状态和信息、电信网络的状态及手机用户的信息。在应用程序中可以使用这些get方法获取相关数据。

    TelephonyManager类的对象可以通过Context.getSystemService(Context.TELEPHONY_SERVICE)方法来获得,需要注意的是有些通讯信息的获取对应用程序的权限有一定的限制,在开发的时候需要为其添加相应的权限。

一、设计界面

  1、布局文件

  打开res/layout/activity_main.xml文件。
  输入以下代码:

[html] view plaincopyprint?
  1. <?xml version="1.0" encoding="utf-8"?>  
  2. <LinearLayout   
  3.     xmlns:android="http://schemas.android.com/apk/res/android"  
  4.     android:layout_width="match_parent"  
  5.     android:layout_height="match_parent"  
  6.     android:orientation="vertical" >  
  7.   
  8.     <Button  
  9.         android:id="@+id/getphoneinfo"  
  10.         android:layout_width="wrap_content"  
  11.         android:layout_height="wrap_content"  
  12.         android:text="获得手机网络信息" />  
  13.   
  14. </LinearLayout>  
<?xml version="1.0" encoding="utf-8"?><LinearLayout     xmlns:android="http://schemas.android.com/apk/res/android"    android:layout_width="match_parent"    android:layout_height="match_parent"    android:orientation="vertical" >    <Button        android:id="@+id/getphoneinfo"        android:layout_width="wrap_content"        android:layout_height="wrap_content"        android:text="获得手机网络信息" /></LinearLayout>


二、程序文件

  打开“src/com.genwoxue.contentprovider_b/MainActivity.java”文件。
  然后输入以下代码:

[java] view plaincopyprint?
  1. package com.genwoxue.telephony;  
  2.   
  3.   
  4. import android.os.Bundle;  
  5. import android.view.View;  
  6. import android.view.View.OnClickListener;  
  7. import android.widget.Button;  
  8. import android.widget.EditText;  
  9. import android.widget.Toast;  
  10. import android.app.Activity;  
  11. import android.telephony.TelephonyManager;  
  12. import android.content.Context;  
  13.   
  14. public class MainActivity extends Activity {  
  15.   
  16.     private Button btnGet=null;  
  17.       
  18.     @Override  
  19.     protected void onCreate(Bundle savedInstanceState) {  
  20.         super.onCreate(savedInstanceState);  
  21.         setContentView(R.layout.activity_main);  
  22.           
  23.         btnGet=(Button)super.findViewById(R.id.getphoneinfo);  
  24.         btnGet.setOnClickListener(new OnClickListener(){  
  25.             public void onClick(View v)  
  26.             {    
  27.                 StringBuilder info=new StringBuilder();  
  28.                 //获取TelephonyManager服务   
  29.                 TelephonyManager telphony=(TelephonyManager)MainActivity.this.getSystemService(Context.TELEPHONY_SERVICE);  
  30.                 //获取移动服务商名称   
  31.                 info.append(telphony.getNetworkOperatorName()+"☆☆☆");  
  32.                 //获取设备号码   
  33.                 info.append(telphony.getDeviceId()+"☆☆☆");  
  34.                   
  35.                 Toast.makeText(getApplicationContext(), info, Toast.LENGTH_LONG).show();  
  36.             }  
  37.         });  
  38.     }  
  39. }  
package com.genwoxue.telephony;import android.os.Bundle;import android.view.View;import android.view.View.OnClickListener;import android.widget.Button;import android.widget.EditText;import android.widget.Toast;import android.app.Activity;import android.telephony.TelephonyManager;import android.content.Context;public class MainActivity extends Activity {	private Button btnGet=null;		@Override	protected void onCreate(Bundle savedInstanceState) {		super.onCreate(savedInstanceState);		setContentView(R.layout.activity_main);				btnGet=(Button)super.findViewById(R.id.getphoneinfo);		btnGet.setOnClickListener(new OnClickListener(){        	public void onClick(View v)        	{          		StringBuilder info=new StringBuilder();        		//获取TelephonyManager服务        		TelephonyManager telphony=(TelephonyManager)MainActivity.this.getSystemService(Context.TELEPHONY_SERVICE);        		//获取移动服务商名称        		info.append(telphony.getNetworkOperatorName()+"☆☆☆");        		//获取设备号码        		info.append(telphony.getDeviceId()+"☆☆☆");        		        		Toast.makeText(getApplicationContext(), info, Toast.LENGTH_LONG).show();        	}        });	}}

 

三、配置文件

  打开“AndroidManifest.xml”文件。

  然后输入以下代码:

[html] view plaincopyprint?
  1. <?xml version="1.0" encoding="utf-8"?>  
  2. <manifest xmlns:android="http://schemas.android.com/apk/res/android"  
  3.     package="com.genwoxue.telephony"  
  4.     android:versionCode="1"  
  5.     android:versionName="1.0" >  
  6.   
  7.     <uses-sdk  
  8.         android:minSdkVersion="11"  
  9.         android:targetSdkVersion="15" />  
  10.       
  11.     <uses-permission android:name="android.permission.READ_PHONE_STATE"/>  
  12.   
  13.     <application  
  14.         android:allowBackup="true"  
  15.         android:icon="@drawable/ic_launcher"  
  16.         android:label="@string/app_name"  
  17.         android:theme="@style/AppTheme" >  
  18.         <activity  
  19.             android:name="com.genwoxue.telephony.MainActivity"  
  20.             android:label="@string/app_name" >  
  21.             <intent-filter>  
  22.                 <action android:name="android.intent.action.MAIN" />  
  23.   
  24.                 <category android:name="android.intent.category.LAUNCHER" />  
  25.             </intent-filter>  
  26.         </activity>  
  27.     </application>  
  28.   
  29. </manifest>  
<?xml version="1.0" encoding="utf-8"?><manifest xmlns:android="http://schemas.android.com/apk/res/android"    package="com.genwoxue.telephony"    android:versionCode="1"    android:versionName="1.0" >    <uses-sdk        android:minSdkVersion="11"        android:targetSdkVersion="15" />        <uses-permission android:name="android.permission.READ_PHONE_STATE"/>    <application        android:allowBackup="true"        android:icon="@drawable/ic_launcher"        android:label="@string/app_name"        android:theme="@style/AppTheme" >        <activity            android:name="com.genwoxue.telephony.MainActivity"            android:label="@string/app_name" >            <intent-filter>                <action android:name="android.intent.action.MAIN" />                <category android:name="android.intent.category.LAUNCHER" />            </intent-filter>        </activity>    </application></manifest>

 

注意:需要在AndroidManifest.xml文件中添加权限:

   <uses-permission android:name="android.permission.READ_PHONE_STATE"/>

四、运行结果