package
org.anymobile.demo.sms;
import
android.content.BroadcastReceiver;
import
android.content.Context;
import
android.content.Intent;
import
android.telephony.gsm.SmsMessage;
import
android.util.Log;
public
class
SMSReceiver
extends
BroadcastReceiver
{
public
static
final
String
TAG
=
"ImiChatSMSReceiver"
;
//android.provider.Telephony.Sms.Intents
public
static
final
String
SMS_RECEIVED_ACTION
=
"android.provider.Telephony.SMS_RECEIVED"
;
@Override
public
void
onReceive(Context context,
Intent intent)
{
if
(intent.getAction().equals(
SMS_RECEIVED_ACTION
))
{
SmsMessage[] messages =
getMessagesFromIntent(intent);
for
(SmsMessage message : messages)
{
Log.i
(
TAG
,
message.getOriginatingAddress() +
" :
"
+
message.getDisplayOriginatingAddress()
+
" : "
+
message.getDisplayMessageBody()
+
" : "
+
message.getTimestampMillis());
}
}
}
public
final
SmsMessage[]
getMessagesFromIntent(Intent intent)
{
Object[] messages = (Object[])
intent.getSerializableExtra(
"pdus"
);
byte
[][] pduObjs =
new
byte
[messages.
length
][];
for
(
int
i = 0; i < messages.
length
; i++)
{
pduObjs[i] = (
byte
[]) messages[i];
}
byte
[][] pdus =
new
byte
[pduObjs.
length
][];
int
pduCount = pdus.
length
;
SmsMessage[] msgs =
new
SmsMessage[pduCount];
for
(
int
i = 0; i < pduCount; i++)
{
pdus[i] = pduObjs[i];
msgs[i] = SmsMessage.createFromPdu
(pdus[i]);
}
return
msgs;
}
}
|
相关推荐
本文将详细介绍两种主要方法:通过广播监听短信消息和通过短信数据库获取短信内容。 **方式一:通过广播监听短信消息** 在Android系统中,可以通过注册一个BroadcastReceiver来监听系统的Intent,特别是ACTION_SMS...
在Android平台上,发送短信是应用程序与用户交互的重要方式之一,主要分为两种方法:直接调用系统短信接口发送和启动系统短信应用。这两种方法各有特点,适用于不同的场景。 1. 调用系统短信接口直接发送短信 这种...
在Android系统中,监听短信通常有两种方法:通过注册BroadcastReceiver监听SMS_RECEIVED_ACTION广播和使用ContentObserver监控短信数据库。这两种方法各有优缺点,下面将详细解释它们的工作原理和实现方式。 1. ...
本文将深入探讨Android广播监听的两种实现方法,并通过手机短信监听实例进行对比,为实际开发提供指导。 一、广播监听机制简介 Android广播是操作系统用来通知所有感兴趣的程序某些特定事件发生的一种机制。这些...
标题中的“PC通过WiFi或者USB管理Android手机上的短信”揭示了一个技术方案,即利用计算机(PC)远程控制或同步Android设备上的短信功能。这个系统由两大部分构成:Android端的应用和PC端的Swing程序。 在Android端...
这个"Android高级应用源码-广播监听短信并获取短信内容.zip"的项目,显然涉及到如何通过自定义的BroadcastReceiver来监听并处理短信相关的事件。以下是关于这个主题的详细知识点: 1. **BroadcastReceiver基础**: ...
在Android系统中,监听电话状态是一项重要的功能,它允许开发者获取到电话的实时信息,比如来电、去电、通话结束等事件。这项功能通常应用于电话录音、来电管理、短信拦截等场景。本教程将深入探讨如何在Android应用...
在Android开发中,短信验证码是身份验证的一种常见方式,特别是在移动应用中。为了实现这个功能,开发者需要监听手机接收到的短信,并从中提取出验证码。然而,在实际操作中,可能会遇到一些挑战,如onChange方法的...
这种监听机制可以通过两种主要的方式实现:BroadcastReceiver和Service。 - **BroadcastReceiver**:这是一种专门用于接收系统或应用广播的组件。它可以监听并响应特定的系统事件,例如接收到新短信、拨打电话等。 ...
本文将深入探讨如何在Android应用中实现这两种通信方式。 首先,我们要了解Android的权限管理。在AndroidManifest.xml文件中,必须添加相应的权限声明,才能允许应用程序进行短信发送和电话拨打。对于发送短信,...
在Android平台上,开发一个简易的短信管理器是常见的任务,涉及到的主要知识点包括Android系统的权限管理、BroadcastReceiver(广播接收者)、SMSManager类以及UI设计。下面将详细解释这些概念及其在实现短信管理器...
我们需要添加ACTION_SMS_RECEIVED的权限到AndroidManifest.xml,因为监听短信需要这个特殊的权限。 ```xml <uses-permission android:name="android.permission.RECEIVE_SMS" /> ``` 在onReceive()方法中,我们...
接下来,我们要监听短信的接收。在Android中,我们可以通过注册BroadcastReceiver来实现。创建一个名为SmsReceiver的BroadcastReceiver类,并重写onReceive方法: ```java public class SmsReceiver extends ...
总结来说,Android拦截陌生人号码短信主要依赖于BroadcastReceiver组件,通过监听`android.provider.Telephony.SMS_RECEIVED`广播事件来实现。当接收到短信时,BroadcastReceiver的onReceive()方法会被调用,我们...
这个"Android短信发送源码"示例为你提供了一种简单易懂的方法来实现这一功能。下面将详细讲解相关知识点,包括Android SMS API的使用、权限管理以及实际的代码实现。 首先,Android系统为发送短信提供了`SmsManager...
在Android系统中,有两种主要的方法来发送短信。第一种是通过直接调用系统短信接口,而第二种则是启动系统的短信发送界面。...以上就是Android中调用接口发送短信的两种方式,开发者可以根据实际需求选择合适的方法。
在这个“Android中采用广播接收者实现短信监控器、拦截外拨电话功能案例”中,我们将探讨如何利用BroadcastReceiver来监控手机中的短信和电话事件。 首先,我们需要创建一个BroadcastReceiver的子类,比如`...
有两种主要方式实现后台运行: 1. **Service**:创建一个Service,启动后持续运行。在Service中注册BroadcastReceiver,这样即使应用主界面关闭,BroadcastReceiver也能接收到短信广播。 2. **IntentService**:...
在Android开发中,有时我们需要实现一个功能,即查询手机号码的归属地,这对于垃圾短信过滤、用户信息验证等场景非常有用。本项目就是一个基于Volley框架实现的Android手机号码归属地查询的示例(demo)。Volley是...
Android开发中,手机号+短信验证码登录是非常常见的一种登录方式。下面,我们将通过实例代码来实现手机号+短信验证码登录的功能。 首先,我们需要在activity_login.xml文件中添加相应的控件,包括 手机号EditText、...