Java 类android.provider.Telephony.Sms.Intents 实例源码
项目:mobly-bundled-snippets
文件:SmsSnippet.java
@TargetApi(Build.VERSION_CODES.KITKAT)
@Override
public void onReceive(Context receivedContext, Intent intent) {
if (Intents.SMS_RECEIVED_ACTION.equals(intent.getAction())) {
SnippetEvent event = new SnippetEvent(mCallbackId, SMS_RECEIVED_EVENT_NAME);
Bundle extras = intent.getExtras();
if (extras != null) {
SmsMessage[] msgs = Intents.getMessagesFromIntent(intent);
StringBuilder smsMsg = new StringBuilder();
SmsMessage sms = msgs[0];
String sender = sms.getOriginatingAddress();
event.getData().putString("OriginatingAddress", sender);
for (SmsMessage msg : msgs) {
smsMsg.append(msg.getMessageBody());
}
event.getData().putString("MessageBody", smsMsg.toString());
mEventCache.postEvent(event);
mContext.unregisterReceiver(this);
}
}
}
项目:FMTech
文件:SmsReceiver.java
public final void onReceive(Context paramContext, Intent paramIntent)
{
if (!"android.provider.Telephony.SMS_RECEIVED".equals(paramIntent.getAction()))
{
Log.d("SmsReceiver", "Received intent with action: " + paramIntent.getAction());
return;
}
if (this.mListener == null)
{
Log.v("SmsReceiver", "No listener to handle SMS broadcasts");
return;
}
if (Build.VERSION.SDK_INT >= 19)
{
this.mListener.onSmsReceived(Telephony.Sms.Intents.getMessagesFromIntent(paramIntent));
return;
}
Object[] arrayOfObject = (Object[])paramIntent.getExtras().get("pdus");
int i = arrayOfObject.length;
SmsMessage[] arrayOfSmsMessage = new SmsMessage[i];
for (int j = 0; j < i; j++) {
arrayOfSmsMessage[j] = SmsMessage.createFromPdu((byte[])(byte[])arrayOfObject[j]);
}
this.mListener.onSmsReceived(arrayOfSmsMessage);
}
项目:sms_DualCard
文件:SmsReceiverService.java
private void handleSmsReceived(Intent intent, int error) {
SmsMessage[] msgs = Intents.getMessagesFromIntent(intent);
String format = intent.getStringExtra("format");
Uri messageUri = insertMessage(this, msgs, error, format);
if (Log.isLoggable(LogTag.TRANSACTION, Log.VERBOSE) || LogTag.DEBUG_SEND) {
SmsMessage sms = msgs[0];
Log.v(TAG, "handleSmsReceived" + (sms.isReplace() ? "(replace)" : "") +
" messageUri: " + messageUri +
", address: " + sms.getOriginatingAddress() +
", body: " + sms.getMessageBody());
}
if (messageUri != null) {
long threadId = MessagingNotification.getSmsThreadId(this, messageUri);
// Called off of the UI thread so ok to block.
MessagingNotification.blockingUpdateNewMessageIndicator(this, threadId, false);
}
}
项目:XPrivacyTester
文件:SmsReceiver.java
@Override
public void onReceive(Context context, Intent intent) {
String action = (intent == null ? null : intent.getAction());
if (Intents.SMS_DELIVER_ACTION.equals(action) || Intents.SMS_RECEIVED_ACTION.equals(action)) {
Bundle bundle = intent.getExtras();
if (bundle == null)
Toast.makeText(context, action, Toast.LENGTH_LONG).show();
else {
Object[] pdusObj = (Object[]) bundle.get("pdus");
for (Object currentObj : pdusObj) {
SmsMessage message = SmsMessage.createFromPdu((byte[]) currentObj);
String origin = message.getDisplayOriginatingAddress();
Toast.makeText(context, action + ": " + origin, Toast.LENGTH_LONG).show();
}
}
}
}
项目:android-aosp-mms
文件:SmsReceiverService.java
private void handleSmsReceived(Intent intent, int error) {
SmsMessage[] msgs = Intents.getMessagesFromIntent(intent);
String format = intent.getStringExtra("format");
Uri messageUri = insertMessage(this, msgs, error, format);
if (Log.isLoggable(LogTag.TRANSACTION, Log.VERBOSE) || LogTag.DEBUG_SEND) {
SmsMessage sms = msgs[0];
Log.v(TAG, "handleSmsReceived" + (sms.isReplace() ? "(replace)" : "") +
" messageUri: " + messageUri +
", address: " + sms.getOriginatingAddress() +
", body: " + sms.getMessageBody());
}
if (messageUri != null) {
long threadId = MessagingNotification.getSmsThreadId(this, messageUri);
// Called off of the UI thread so ok to block.
Log.d(TAG, "handleSmsReceived messageUri: " + messageUri + " threadId: " + threadId);
MessagingNotification.blockingUpdateNewMessageIndicator(this, threadId, false);
}
}
项目:mobly-bundled-snippets
文件:SmsSnippet.java
@TargetApi(Build.VERSION_CODES.KITKAT)
@Rpc(description = "Wait for incoming SMS message.")
public JSONObject waitForSms() throws Throwable {
String callbackId = SMS_CALLBACK_ID_PREFIX + (++mCallbackCounter);
SmsReceiver receiver = new SmsReceiver(mContext, callbackId);
mContext.registerReceiver(receiver, new IntentFilter(Intents.SMS_RECEIVED_ACTION));
return Utils.waitForSnippetEvent(
callbackId, SMS_RECEIVED_EVENT_NAME, DEFAULT_TIMEOUT_MILLISECOND)
.toJson();
}
项目:appinventor-extensions
文件:KitkatUtil.java
/**
* Retrieve any SmsMessage objects encoded in the SMS_RECEIVED intent.
*
* @param intent An intent passed by Android to the SMS_RECEIVED receiver.
* @return A list of SmsMessages. The list will be non-null but zero length if the intent lacks
* SMS content.
*/
public static List<SmsMessage> getMessagesFromIntent(Intent intent) {
List<SmsMessage> result = new ArrayList<SmsMessage>();
SmsMessage[] messages = Intents.getMessagesFromIntent(intent);
if (messages != null && messages.length >= 0) {
Collections.addAll(result, messages);
}
return result;
}
项目:kitkat-sms-patch
文件:Patch.java
@Override
protected void beforeHookedMethod(MethodHookParam param) throws Throwable {
Intent intent = (Intent) param.args[1];
String action = intent.getAction();
if (action.equals(Intents.SMS_DELIVER_ACTION)
|| action.equals(Intents.WAP_PUSH_DELIVER_ACTION)) {
// already send, treat as anther action
Log.i(TAG, "received deliver action");
intent.setAction("czbix.sms.deliver.finish");
}
}
项目:kitkat-sms-patch
文件:Patch.java
private void updateDefaultSmsReceiver(Context context, ComponentName componentName, boolean isMms) {
SmsReceiver receiver = isMms ? mmsReceiver : smsReceiver;
if (receiver != null) {
if (receiver.getComponentName().equals(componentName)) {
return;
}
context.unregisterReceiver(receiver);
if (isMms) {
mmsReceiver = null;
} else {
smsReceiver = null;
}
}
if (componentName == null) {
return;
}
receiver = new SmsReceiver(componentName);
context.registerReceiver(receiver, new IntentFilter(isMms
? Intents.WAP_PUSH_RECEIVED_ACTION : Intents.SMS_RECEIVED_ACTION));
if (isMms) {
mmsReceiver = receiver;
} else {
smsReceiver = receiver;
}
}
项目:kitkat-sms-patch
文件:SmsReceiver.java
@Override
public void onReceive(Context context, Intent intent) {
if (intent.getAction().equals(Intents.SMS_RECEIVED_ACTION)) {
intent.setAction(Intents.SMS_DELIVER_ACTION);
} else if (intent.getAction().equals(Intents.WAP_PUSH_RECEIVED_ACTION)) {
intent.setAction(Intents.WAP_PUSH_DELIVER_ACTION);
}
intent.setComponent(componentName);
context.sendBroadcast(intent);
}
项目:sms_DualCard
文件:SmsReceiver.java
protected void onReceiveWithPrivilege(Context context, Intent intent, boolean privileged) {
// If 'privileged' is false, it means that the intent was delivered to the base
// no-permissions receiver class. If we get an SMS_RECEIVED message that way, it
// means someone has tried to spoof the message by delivering it outside the normal
// permission-checked route, so we just ignore it.
if (!privileged && intent.getAction().equals(Intents.SMS_RECEIVED_ACTION)) {
return;
}
intent.setClass(context, SmsReceiverService.class);
intent.putExtra("result", getResultCode());
beginStartingService(context, intent);
}
项目:android-aosp-mms
文件:SmsReceiver.java
protected void onReceiveWithPrivilege(Context context, Intent intent, boolean privileged) {
// If 'privileged' is false, it means that the intent was delivered to the base
// no-permissions receiver class. If we get an SMS_RECEIVED message that way, it
// means someone has tried to spoof the message by delivering it outside the normal
// permission-checked route, so we just ignore it.
if (!privileged && intent.getAction().equals(Intents.SMS_DELIVER_ACTION)) {
return;
}
intent.setClass(context, SmsReceiverService.class);
intent.putExtra("result", getResultCode());
beginStartingService(context, intent);
}
项目:mobly-bundled-snippets
文件:SmsSnippet.java
@TargetApi(Build.VERSION_CODES.KITKAT)
@AsyncRpc(description = "Async wait for incoming SMS message.")
public void asyncWaitForSms(String callbackId) {
SmsReceiver receiver = new SmsReceiver(mContext, callbackId);
mContext.registerReceiver(receiver, new IntentFilter(Intents.SMS_RECEIVED_ACTION));
}
项目:kitkat-sms-patch
文件:Patch.java
@Override
protected void beforeHookedMethod(MethodHookParam param) throws Throwable {
Intent intent = (Intent) param.args[0];
final String action = intent.getAction();
boolean isMms = false;
switch (action) {
case Intents.SMS_DELIVER_ACTION:
intent.setAction(Intents.SMS_RECEIVED_ACTION);
break;
case Intents.WAP_PUSH_DELIVER_ACTION:
isMms = true;
intent.setAction(Intents.WAP_PUSH_RECEIVED_ACTION);
break;
default:
// not interesting
return;
}
Context context = (Context) XposedHelpers.getObjectField(param.thisObject, "mContext");
updateDefaultSmsReceiver(context, intent.getComponent(), isMms);
intent.setComponent(null);
Log.d(TAG, "received sms, send broadcast to sms blocker");
String perm = (String) param.args[1];
int appOp = ((Integer) param.args[2]);
BroadcastReceiver receiver = (BroadcastReceiver) param.args[Utils.isMmOrLater ? 4 : 3];
if (Utils.isMmOrLater) {
final Bundle opts = (Bundle) param.args[3];
handleForMm(param, context, intent, perm, appOp, opts, receiver);
} else if (Utils.isLpOrLater) {
handleForLp(param, context, intent, perm, appOp, receiver);
} else {
callSendBroadcast(param.thisObject, context, intent, perm, appOp, receiver);
}
// skip original method
param.setResult(null);
}