【问题标题】:Retrieving the SMS Messages from the SIM card on with android使用 android 从 SIM 卡中检索 SMS 消息
【发布时间】:2020-01-03 22:06:12
【问题描述】:

我想知道是否有人知道有关在 Android 平台上以编程方式从手机 sim 卡上获取短信的任何信息。我想编写一个程序,允许您将单个消息或整个线程保存到 sd 卡,但环顾四周后,我发现 google 决定从当前的 android sdk 中取出该 api。我在一些地方看到有隐藏的api,但没有人知道它们是什么或如何使用它们。

【问题讨论】:

    标签: java android sms


    【解决方案1】:

    这是一个代码 sn-p,可让您阅读消息。

    import android.content.BroadcastReceiver;
    import android.content.Context;
    import android.content.Intent;
    import android.os.Bundle;
    import android.telephony.gsm.SmsMessage;
    import android.telephony.gsm.SmsManager;
    import android.widget.Toast;
    
    public class SMSReceiver extends BroadcastReceiver
    {
        public void onReceive(Context context, Intent intent)
        {
            Bundle myBundle = intent.getExtras();
            SmsMessage [] messages = null;
            String from= "";
            String body="";
            boolean inSIM=false;
    
            if (myBundle != null)
            {
                Object [] pdus = (Object[]) myBundle.get("pdus");
                messages = new SmsMessage[pdus.length];
    
                for (int i = 0; i < messages.length; i++)
                {
                    messages[i] = SmsMessage.createFromPdu((byte[]) pdus[i]);
                    from = ""+messages[i].getOriginatingAddress();
                    body = ""+messages[i].getMessageBody();
                    inSIM = (messages[i].getIndexOnSim() != -1);
                    if (inSIM)
                    {
                        int status = messages[i].getStatusOnSim();
                        if (status == SmsManager.STATUS_ON_SIM_UNREAD)
                        {
                           Toast.makeText(context, "Message Unread on SIM: "+from+": "+body, Toast.LENGTH_SHORT).show();
                        }
                    }                
                }            
            }
        }
    }
    

    【讨论】:

      【解决方案2】:

      另一种简单的方法是

      class SmsReceiver : BroadcastReceiver() {
      
          override fun onReceive(context: Context, intent: Intent) {
              val messages = Telephony.Sms.Intents.getMessagesFromIntent(intent)
          }
      }
      

      【讨论】:

        猜你喜欢
        • 1970-01-01
        • 1970-01-01
        • 1970-01-01
        • 1970-01-01
        • 1970-01-01
        • 1970-01-01
        • 1970-01-01
        • 1970-01-01
        • 1970-01-01
        相关资源
        最近更新 更多