本文實例講述了Android監聽手機電話狀態與發送郵件通知來電號碼的方法。分享給大家供大家參考,具體如下:
在android中可以用PhoneStateListener來聆聽手機電話狀態(比如待機、通話中、響鈴等)。本例是通過它來監聽手機電話狀態,當手機來電時,通過郵件將來電號碼發送到用戶郵箱的例子。具體程序如下:
import android.app.Activity;import android.content.Intent;import android.os.Bundle;import android.telephony.PhoneStateListener;import android.telephony.TelephonyManager;import android.widget.TextView;public class A07Activity extends Activity { private TextView tv;//用來顯示電話狀態 private String emailReceiver="16*****85@qq.com"; //郵箱地址 private String emailSubject="你有來電信息,請查收!"; //作為郵件主題 /** Called when the activity is first created. */ @SuppressWarnings("static-access") @Override public void onCreate(Bundle savedInstanceState) { super.onCreate(savedInstanceState); setContentView(R.layout.main); tv=(TextView)findViewById(R.id.tv); PhoneCallListener pcl=new PhoneCallListener(); TelephonyManager tm=(TelephonyManager)getSystemService(TELEPHONY_SERVICE); tm.listen(pcl, pcl.LISTEN_CALL_STATE); } public class PhoneCallListener extends PhoneStateListener{ public void onCallStateChanged(int state,String incomingNumber){ //需要重寫onCallStateChanged方法 switch(state){ case TelephonyManager.CALL_STATE_IDLE: tv.setText("CALL_STATE_IDLE"); break; case TelephonyManager.CALL_STATE_OFFHOOK: tv.setText("CALL_STATE_OFFHOOK"); break; case TelephonyManager.CALL_STATE_RINGING: tv.setText("來電號碼"+incomingNumber); //如果有人打來電話,就會自動發送郵件到郵箱通知用戶來電號碼//設置來電時發送郵件 Intent i=new Intent(android.content.Intent.ACTION_SEND); i.setType("plain/text"); i.putExtra(android.content.Intent.EXTRA_EMAIL, new String[]{emailReceiver.toString()}); i.putExtra(android.content.Intent.EXTRA_SUBJECT, emailSubject.toString()); i.putExtra(android.content.Intent.EXTRA_TEXT, "來電電話"+incomingNumber); startActivity(Intent.createChooser(i, "來電信息")); break; default: break; } super.onCallStateChanged(state, incomingNumber); } }}其中還需要在AndroidManifest.xml中添加幾個相應的權限:
<?xml version="1.0" encoding="utf-8"?><manifest xmlns:android="http://schemas.android.com/apk/res/android" package="com.my.a07" android:versionCode="1" android:versionName="1.0" > <uses-sdk android:minSdkVersion="10" /> <application android:icon="@drawable/ic_launcher" android:label="@string/app_name" > <activity android:name=".A07Activity" 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-permission android:name="android.permission.SEND_SMS"></uses-permission> <uses-permission android:name="android.permission.READ_CONTACTS"></uses-permission> <uses-permission android:name="android.permission.READ_PHONE_STATE"></uses-permission></manifest>
更多關于Android相關內容感興趣的讀者可查看本站專題:《Android控件用法總結》及《Android開發入門與進階教程》
希望本文所述對大家Android程序設計有所幫助。
新聞熱點
疑難解答
圖片精選