Android監(jiān)聽手機電話狀態(tài)與發(fā)送郵件通知來電號碼的方法(基于PhoneStateListene實現(xiàn))
本文實例講述了Android監(jiān)聽手機電話狀態(tài)與發(fā)送郵件通知來電號碼的方法。分享給大家供大家參考,具體如下:
在android中可以用PhoneStateListener來聆聽手機電話狀態(tài)(比如待機、通話中、響鈴等)。本例是通過它來監(jiān)聽手機電話狀態(tài),當(dāng)手機來電時,通過郵件將來電號碼發(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ā)送郵件到郵箱通知用戶來電號碼
//設(shè)置來電時發(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中添加幾個相應(yīng)的權(quán)限:
<?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>
更多關(guān)于Android相關(guān)內(nèi)容感興趣的讀者可查看本站專題:《Android控件用法總結(jié)》及《Android開發(fā)入門與進階教程》
希望本文所述對大家Android程序設(shè)計有所幫助。
相關(guān)文章
Android App啟動圖啟動界面(Splash)的簡單實現(xiàn)代碼
這篇文章主要介紹了Android App啟動圖啟動界面(Splash)的簡單實現(xiàn)代碼,本文通過實例圖文詳解相結(jié)合給大家介紹的非常詳細,對大家的學(xué)習(xí)或工作具有一定的參考借鑒價值,需要的朋友可以參考下2020-05-05
Android編程實現(xiàn)自定義Tab選項卡功能示例
這篇文章主要介紹了Android編程實現(xiàn)自定義Tab選項卡功能,結(jié)合完整實例形式分析了Android自定義tab選項卡的遍歷、設(shè)置及屬性操作相關(guān)技巧,需要的朋友可以參考下2017-02-02
android自定義RadioGroup可以添加多種布局的實現(xiàn)方法
這篇文章介紹了android自定義RadioGroup可以添加多種布局的實現(xiàn)方法,有需要的朋友可以參考一下2013-08-08
Android?`%d`?與?`1$%d`?格式化的區(qū)別解析
本文詳細解析了Android開發(fā)中`%d`和`1$%d`格式化占位符的區(qū)別,并通過Kotlin代碼示例幫助理解,`%d`按順序填充參數(shù),而`1$%d`按指定索引填充參數(shù),后者在多語言場景下更靈活,感興趣的朋友一起看看吧2025-03-03
Android 8.0中一些坑以及對應(yīng)的解決方法
這篇文章主要給大家介紹了關(guān)于Android 8.0中一些坑以及對應(yīng)的解決方法的相關(guān)資料,文中通過示例代碼介紹的非常詳細,對大家的學(xué)習(xí)或者工作具有一定的參考學(xué)習(xí)價值,需要的朋友們下面隨著小編來一起學(xué)習(xí)學(xué)習(xí)吧2018-09-09
Android Parcleable接口的調(diào)用源碼層分析
這篇文章主要給大家介紹了關(guān)于利用Kotlin如何實現(xiàn)Android開發(fā)中的Parcelable的相關(guān)資料,并且給大家介紹了關(guān)于Android Parcleable源碼層問題,需要的朋友可以參考下2022-12-12
android與asp.net服務(wù)端共享session的方法詳解
這篇文章主要給大家介紹了關(guān)于android與asp.net服務(wù)端如何共享session的方法,文中通過示例代碼介紹的非常詳細,對大家的學(xué)習(xí)或者工作具有一定的參考學(xué)習(xí)價值,需要的朋們下面隨著小編來一起學(xué)習(xí)學(xué)習(xí)下吧。2017-09-09

