本文实例讲述了Android监听手机电话状态与发送邮件通知来电号码的方法。分享给大家供大家参考,具体如下:
在android中可以用PhoneStateListener来聆听手机电话状态(比如待机、通话中、响铃等)。本例是通过它来监听手机电话状态,当手机来电时,通过邮件将来电号码发送到用户邮箱的例子。具体程序如下:
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
|
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中添加几个相应的权限:
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
|
<? 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程序设计有所帮助。