Android - 向内置消息添加自定义菜单长按上下文菜单

时间:2014-04-12 22:11:34

标签: android sms

我想编写一个应用来加密所有传入的消息。所以我收到短信,加密后我把加密的短信放在邮箱收件箱上没有任何问题:

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上下文菜单中添加自定义内容菜单,以便用户解密邮件正文。有什么建议吗?

1 个答案:

答案 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客户端。