Android監(jiān)聽手機電話狀態(tài)與發(fā)送郵件通知來電號碼的方法(基于PhoneStateListene實現(xiàn))
本文實例講述了Android監(jiān)聽手機電話狀態(tài)與發(fā)送郵件通知來電號碼的方法。分享給大家供大家參考,具體如下:
在android中可以用PhoneStateListener來聆聽手機電話狀態(tài)(比如待機、通話中、響鈴等)。本例是通過它來監(jiān)聽手機電話狀態(tài),當手機來電時,通過郵件將來電號碼發(fā)送到用戶郵箱的例子。具體程序如下:
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;//用來顯示電話狀態(tài) 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); //如果有人打來電話,就會自動發(fā)送郵件到郵箱通知用戶來電號碼 //設置來電時發(fā)送郵件 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相關內(nèi)容感興趣的讀者可查看本站專題:《Android控件用法總結》及《Android開發(fā)入門與進階教程》
希望本文所述對大家Android程序設計有所幫助。
相關文章
activity 獲取rootView 設置backGroundColor的方法
下面小編就為大家?guī)硪黄猘ctivity 獲取rootView 設置backGroundColor的方法。小編覺得挺不錯的,現(xiàn)在就分享給大家,也給大家做個參考。一起跟隨小編過來看看吧2017-04-04android studio集成unity導出工程的實現(xiàn)
本文主要介紹了android studio集成unity導出工程的實現(xiàn),文中通過示例代碼介紹的非常詳細,對大家的學習或者工作具有一定的參考學習價值,需要的朋友們下面隨著小編來一起學習學習吧2022-05-05Android自定義一個view?ViewRootImpl繪制流程示例
這篇文章主要為大家介紹了Android自定義一個view?ViewRootImpl繪制流程示例,有需要的朋友可以借鑒參考下,希望能夠有所幫助,祝大家多多進步,早日升職加薪2022-09-09Android viewpage實現(xiàn)禁止滑動的功能
這篇文章主要介紹了Android viewpage實現(xiàn)禁止滑動的功能的相關資料,這里附有實現(xiàn)的實例代碼,主要還是重新 ViewPage 這個類,需要的朋友可以參考下2016-11-11