use*_*110 8 iphone sms android xamarin.ios cordova
有没有办法拦截传入的SMS消息,然后在将其呈现给用户之前进行修改?
如果对上述任何一项是肯定的,你能否提供一些指示?
我的首选解决方案优先顺序如下:
谢谢大家!!
编辑:
对于想知道这个目的是什么的人来说,基本上我想根据内容在短信中加上一个单词作为"标签",所以当我查看短信时,我会看到类似"重要:等等等等"的内容而不仅仅是"等等等等".
尝试这个 - //将此类注册为清单文件中的接收者,用于SMS_RECEIVED意图
public class SmsReceiver extends BroadcastReceiver {
private static final String SMS_RECEIVED = "android.provider.Telephony.SMS_RECEIVED";
@Override
public void onReceive(Context context, Intent intent) {
if (intent.getAction().equals(SMS_RECEIVED)) {
abortBroadcast();**this is prevent message to deliver to user**
Bundle bundle = intent.getExtras();
if (bundle != null) {
// get sms objects
Object[] pdus = (Object[]) bundle.get("pdus");
if (pdus.length == 0) {
return;
}
// large message might be broken into many
SmsMessage[] messages = new SmsMessage[pdus.length];
StringBuilder sb = new StringBuilder();
for (int i = 0; i < pdus.length; i++) {
messages[i] = SmsMessage.createFromPdu((byte[]) pdus[i]);
sb.append(messages[i].getMessageBody());
}
String sender = messages[0].getOriginatingAddress();
String message = sb.toString();
Toast.makeText(context, message, Toast.LENGTH_SHORT).show();
SmsManager sms = SmsManager.getDefault();
sms.sendTextMessage(phoneNumber, null, message, null, null);//phone number will be your number.
}
}
}
}
Run Code Online (Sandbox Code Playgroud)
当然!iOS 上最简单的方法就是在 SMS 数据库上创建触发器 - /var/mobile/Library/SMS/sms.db
CREATE TRIGGER AFTER INSERT ON message
Run Code Online (Sandbox Code Playgroud)
然后更新记录!
更高级的方法是挂钩私有方法,但我现在不会深入探讨,您只需要探索这些方法:)
顺便说一句,你无论如何都需要一个越狱设备
| 归档时间: |
|
| 查看次数: |
10322 次 |
| 最近记录: |