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)文章
activity 獲取rootView 設(shè)置backGroundColor的方法
下面小編就為大家?guī)硪黄猘ctivity 獲取rootView 設(shè)置backGroundColor的方法。小編覺得挺不錯的,現(xiàn)在就分享給大家,也給大家做個參考。一起跟隨小編過來看看吧2017-04-04
android studio集成unity導(dǎo)出工程的實現(xiàn)
本文主要介紹了android studio集成unity導(dǎo)出工程的實現(xiàn),文中通過示例代碼介紹的非常詳細,對大家的學(xué)習(xí)或者工作具有一定的參考學(xué)習(xí)價值,需要的朋友們下面隨著小編來一起學(xué)習(xí)學(xué)習(xí)吧2022-05-05
Android自定義一個view?ViewRootImpl繪制流程示例
這篇文章主要為大家介紹了Android自定義一個view?ViewRootImpl繪制流程示例,有需要的朋友可以借鑒參考下,希望能夠有所幫助,祝大家多多進步,早日升職加薪2022-09-09
Android viewpage實現(xiàn)禁止滑動的功能
這篇文章主要介紹了Android viewpage實現(xiàn)禁止滑動的功能的相關(guān)資料,這里附有實現(xiàn)的實例代碼,主要還是重新 ViewPage 這個類,需要的朋友可以參考下2016-11-11
Android自定義View的三種實現(xiàn)方式總結(jié)
本篇文章主要介紹了Android自定義View的三種實現(xiàn)方式總結(jié),非常具有實用價值,需要的朋友可以參考下。2017-02-02

