我想编写一个应用来加密所有传入的消息。所以我收到短信,加密后我把加密的短信放在邮箱收件箱上没有任何问题:
package org.appsroid.smsmodifier;
import android.content.BroadcastReceiver;
import android.content.ContentValues;
import android.content.Context;
import android.content.Intent;
import android.net.Uri;
import android.os.Bundle;
import android.telephony.SmsMessage;
public class SmsReceiver extends BroadcastReceiver
{
@Override
public void onReceive(Context context, Intent intent)
{
//---get the SMS message passed in---
Bundle bundle = intent.getExtras();
SmsMessage[] msgs = null;
String str = "";
if (bundle != null)
{
//---retrieve the SMS message received---
Object[] pdus = (Object[]) bundle.get("pdus");
msgs = new SmsMessage[pdus.length];
for (int i=0; i<msgs.length; i++){
msgs[i] = SmsMessage.createFromPdu((byte[])pdus[i]);
String address = msgs[i].getOriginatingAddress();
String body = msgs[i].getMessageBody().toString();
/*
* Some codes to encrypt body ...
*/
/*
* Add Encrypted SMS to Messages inbox
*/
}
// Delete plain SMS
abortBroadcast();
}
}
}
现在,我需要在内置的Android Messages上下文菜单中添加自定义内容菜单,以便用户解密邮件正文。有什么建议吗?
答案 0 :(得分:1)
首先,没有单一的内置Android消息&#34;应用程序。不同的设备型号有数十个,也许是数百个。很少有上下文菜单,更少的会提供任何修改它的方法。除此之外,Play商店和其他用户可能已经使用的SMS客户端应用程序还有很多。
其次,您的#34;将加密的短信放在邮件收件箱中&#34;除非您编写完整的SMS客户端,否则代码将无法在Android 4.4+上运行,如only the SMS client can write to the SMS ContentProvider
。
因此,您需要编写自己的SMS客户端,以便能够解密您的消息并能够在Android 4.4及更高版本上使用它。然后,您将需要说服人们,鉴于其加密功能,您的SMS客户端值得使用而不是他们当前的SMS客户端。