`
huiji232
  • 浏览: 11834 次
社区版块
存档分类
最新评论

Service,BroadcastReceiver打电话,发短信,短信接收广播

 
阅读更多
/// 获取电话管理器
		tmg = (TelephonyManager) getSystemService(Context.TELEPHONY_SERVICE);
		sharedPreferences = getSharedPreferences(Constant.PREFERENCESNAME,
				MODE_PRIVATE);


/**
	 * 发送短信
	 * 
	 * @param incomingNumber
	 */
	protected void senMsg(String incomingNumber) {
		String num = sharedPreferences.getString("numb", null);
		SmsManager smsManager = SmsManager.getDefault();
		if (num != null && num.length() > 0) {
			smsManager.sendTextMessage(num, null, incomingNumber + "来电", null,
					null);
		}

	}

//短信广播,并取出短信
package com.example.phonelistener;

import android.content.BroadcastReceiver;
import android.content.Context;
import android.content.Intent;
import android.content.SharedPreferences;
import android.media.MediaPlayer;
import android.net.Uri;
import android.os.Bundle;
import android.telephony.SmsMessage;

public class MsmReciever extends BroadcastReceiver {

	@Override
	public void onReceive(Context context, Intent intent) {
		SharedPreferences sharedPreferences = context.getSharedPreferences(
				Constant.PREFERENCESNAME, Context.MODE_PRIVATE);
		// 收到短信,并取出短信内容
		Bundle bundle = intent.getExtras();
		Object[] object = (Object[]) bundle.get("pdus");
		System.out.println("====================================");
		SmsMessage[] messages = new SmsMessage[object.length];
		for (int i = 0; i < object.length; i++) {
			messages[i] = SmsMessage.createFromPdu((byte[]) object[i]);
		}
		for (int i = 0; i < messages.length; i++) {
			String messageBody = messages[i].getMessageBody();
			String fromNum = messages[i].getDisplayOriginatingAddress();
			if (messageBody.equals("ring")
					&& sharedPreferences.getBoolean("msmlistener", false)) {
				MediaPlayer mPlayer = MediaPlayer.create(context, R.raw.ring);
				mPlayer.start();
				abortBroadcast();
			}
			System.out.println(messageBody + "============================");
			if (messageBody.equals("callme")
					&& sharedPreferences.getBoolean("msmlistener", false)) {
				// 回拨电话
				Intent callIntent = new Intent(Intent.ACTION_CALL,
						Uri.parse("tel://" + fromNum));
				callIntent.setFlags(Intent.FLAG_ACTIVITY_NEW_TASK);
				context.startActivity(callIntent);
				abortBroadcast();
			}
		}

	}
}

//添加权限
<uses-permission android:name="android.permission.SEND_SMS"/>
    <uses-permission android:name="android.permission.READ_SMS"/>
    <uses-permission android:name="android.permission.READ_PHONE_STATE"/>
    <uses-permission android:name="android.permission.CALL_PHONE"/>
    <uses-permission android:name="android.permission.RECEIVE_SMS"/>
分享到:
评论

相关推荐

    四,android四大组件基础介绍及打电话,发短信简单应用 &单元测试

    为了实现“打电话”和“发短信”的功能,开发者需要使用到Android的权限管理,例如`&lt;uses-permission&gt;`标签在AndroidManifest.xml中声明打电话和发送短信所需的权限。此外,还需要使用到Android提供的Intent机制来...

    安卓四个组件之一 广播使用

    对于一些敏感的系统广播,如接打电话、发送短信等,需要在AndroidManifest.xml中添加相应的权限声明。 在实际应用中,BroadcastReceiver可以用来实现很多实用功能,例如检测网络状态、监控电池电量、接收系统消息等...

    android 定时打电话的小程序

    在Android平台上,开发一个定时打电话的小程序涉及到多个关键知识点,包括Android系统服务、AlarmManager、BroadcastReceiver、Intent以及电话权限管理。以下是对这些知识点的详细解释: 1. **Android系统服务...

    Android 定时打电话功能源码-IT计算机-毕业设计.zip

    在Android平台上实现定时打电话的功能,是一项涉及多个技术层面的任务,主要涵盖了Android系统服务、广播接收器、AlarmManager、Intent以及电话APIs等关键组件。以下是对这个毕业设计项目中的核心知识点的详细说明:...

    Android代码-定时打电话功能源码.zip

    在实现定时打电话的功能时,我们需要创建一个自定义的`BroadcastReceiver`,在接收到`AlarmManager`发出的广播时,调用系统的拨号API进行电话拨打。 ```java public class CallReceiver extends BroadcastReceiver ...

    收发短信kkk

    4. **短信接收**:在Android中,可以注册BroadcastReceiver监听SMS_RECEIVED广播,当接收到短信时,广播接收器会触发并处理短信内容。iOS则需要在应用的Info.plist文件中声明权限,并通过...

    Android 定时打电话功能源码.zip源码资源下载

    在定时打电话的应用中,我们通常创建一个BroadcastReceiver来接收由AlarmManager发出的广播,然后启动IntentService进行拨号。 5. **电话API**:Android提供了PhoneAccount、InCallService等接口,用于与电话功能...

    Android打电话源码

    这时可以注册一个`BroadcastReceiver`来接收`TelephonyManager`发出的广播事件,如`ACTION_PHONE_STATE_CHANGED`。 4. **TelephonyManager** `TelephonyManager`类提供了电话相关的功能,如获取手机状态、SIM卡...

    Android 定时打电话功能源码.zip

    在Android平台上实现定时打电话的功能,通常涉及到Android系统的AlarmManager服务、BroadcastReceiver以及Intent等关键组件。下面我们将深入探讨这些知识点。 1. **AlarmManager**: AlarmManager是Android系统提供...

    Android 定时打电话功能源码

    "Android 定时打电话功能源码"很可能是包含了一个完整的Android项目,包括了Activity(主界面)、Service(负责拨打电话)、BroadcastReceiver(用于接收AlarmManager的广播)以及相关布局文件。源码中会详细展示...

    Android程序研发源码Android 定时打电话功能源码.zip

    `BroadcastReceiver`是Android中接收广播事件的组件,可以监听系统或自定义的广播消息。在这个源码中,可能会有一个注册了的`BroadcastReceiver`来监听电话拨号的广播事件。 3. **Intent**: `Intent`是Android中...

    Android应用源码之SMSLisenter.zip

    此外,为了防止恶意应用滥用短信监听,Android在某些版本之后引入了前台服务的要求,即监听短信的广播接收器必须与一个正在运行的前台服务关联,以提供用户可见的通知。 学习这个`SMSListener`源码,你可以了解到...

    安卓Android源码——打电话源码.zip

    这里我们关注的是“打电话”功能的源码,这是一个基础且至关重要的功能,尤其是在开发通信类应用时。下面我们将深入探讨安卓源码中与打电话相关的知识点。 首先,让我们了解安卓系统如何处理打电话的操作。当用户...

    安卓Android源码——定时打电话功能源码.zip

    在安卓(Android)平台上开发应用时,有时会需要实现一些特殊功能,比如定时打电话。这个压缩包中的资源提供了实现这一功能的源代码。通过分析这些文件,我们可以学习如何在Android应用中集成定时任务并执行拨打电话...

    安卓开发-android打电话源码.zip

    `Intent`是Android中用于启动活动(Activity)、服务(Service)或者广播接收器(BroadcastReceiver)的类,它携带了执行特定操作的信息。在拨打电话的场景中,我们创建一个`Intent`实例,并设置其`ACTION_CALL`动作...

    Android应用源码之MonitorPhone.zip

    - 为了实时监听设备状态,MonitorPhone可能会注册BroadcastReceiver来响应电话状态变化、短信接收等广播事件。 6. **Location API**: - Android提供了Location API来获取设备的GPS或网络定位信息,应用可能通过...

Global site tag (gtag.js) - Google Analytics