Android以TelephonyManager取得話機狀態package android.demo.phonestateimport android.app.Activityim
Android以TelephonyManager取得話機狀態
package android.demo.phonestate;import android.app.Activity;import android.content.Context;import android.os.Bundle;import android.telephony.PhoneStateListener;import android.telephony.TelephonyManager;import android.widget.Toast;public class PhoneState_Activity extends Activity { /** Called when the activity is first created. */@Overridepublic void onCreate(Bundle icicle) { super.onCreate(icicle); setContentView(R.layout.main); //電話狀態的Listener MyPhoneStateListener myPhoneStateListener = new MyPhoneStateListener(); //取得TelephonyManager TelephonyManager telephonyManager = (TelephonyManager) getSystemService(Context.TELEPHONY_SERVICE); //將電話狀態的Listener加到取得TelephonyManager telephonyManager.listen(myPhoneStateListener, PhoneStateListener.LISTEN_CALL_STATE); } public class MyPhoneStateListener extends PhoneStateListener { @Overridepublic void onCallStateChanged(int state, String phoneNumber) { Toast.makeText(PhoneState_Activity.this, TelephonyManager.ACTION_PHONE_STATE_CHANGED, Toast.LENGTH_SHORT).show();switch (state) { //電話狀態是閒置的 case TelephonyManager.CALL_STATE_IDLE: break; //電話狀態是接起的 case TelephonyManager.CALL_STATE_OFFHOOK: Toast.makeText(PhoneState_Activity.this, "正接起電話…", Toast.LENGTH_SHORT).show(); break; //電話狀態是響起的 case TelephonyManager.CALL_STATE_RINGING: Toast.makeText(PhoneState_Activity.this, phoneNumber + "正打電話來…", Toast.LENGTH_SHORT).show(); break; default: break; } } } }//--------------------------------<?xml version="1.0" encoding="utf-8"?><manifest xmlns:android="http://schemas.android.com/apk/res/android" package="android.demo.phonestate" android:versionCode="1" android:versionName="1.0"> <application android:icon="@drawable/icon" android:label="@string/app_name"> <activity android:name=".PhoneState_Activity" 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> <uses-sdk android:minSdkVersion="7" /><uses-permission android:name="android.permission.READ_PHONE_STATE"></uses-permission> </manifest> 