【问题标题】:Get sms address from intent data从意图数据中获取短信地址
【发布时间】:2015-07-30 09:55:42
【问题描述】:

我需要从不同类型的意图中检索电话号码。 案例的意图如下:

Intent smsIntent = new Intent(android.content.Intent.ACTION_VIEW);
smsIntent.setType("vnd.android-dir/mms-sms");
smsIntent.putExtra("address","phoneNumber");         
smsIntent.putExtra("sms_body","message");
startActivity(smsIntent);

或:

Intent sms_intent = new Intent(Intent.ACTION_SENDTO, Uri.parse("smsto:xxxxxxxxxx"); 
sms_intent.putExtra("sms_body", "This is my message!"); 
startActivity(sms_intent);

当我开始新的活动时,我会得到我的捆绑附加服务:

Bundle extras = getIntent().getExtras();
    if (extras != null) {
        //some code
    }

具体来说,对于第一种情况,意图显式绑定一个额外的密钥 "address" 我这样做:

extra_phoneNumber = extras.getString("address");

但是对于第二个意图案例,我在尝试检索 smsto: 之后的值时遇到了一些麻烦。

我已经尝试通过以下方式遍历捆绑附加功能:

for (String key : bundle.keySet()) {
Object value = bundle.get(key);
Log.d(TAG, String.format("%s %s (%s)", key,  
    value.toString(), value.getClass().getName()));

}

但如果附加项是空的,这给我一个 NPE。

由于谷歌本身缺乏文档,我找不到任何东西,所以任何答案都会非常有帮助! 提前致谢。

【问题讨论】:

  • 我建议您通过调试器检查第二种情况意图如何查看内部。除了 extras 之外,还有其他字段可以存储信息。见developer.android.com/reference/android/content/…也许这会有所帮助
  • 完美! .getDataString() 有效!老实说,我之前曾尝试调用 getData(),但我在错误的对象上调用它。请将此写为答案,以便我可以将其标记为正确,以帮助其他有同样问题的人!

标签: android android-intent extras android-bundle


【解决方案1】:

我建议您通过调试器检查第二种情况意图如何查看内部。除了 extras 之外,还有其他字段可以存储信息。 请查看Intent.getData()Intent.getDataString()

【讨论】:

    【解决方案2】:

    你可以试试这个代码:

    SmsMessage[] msgs = null;
    msgs = new SmsMessage[pdus.length];
    for (int i = 0; i < msgs.length; i++) {
              msgs[i] = SmsMessage.createFromPdu((byte[]) pdus[i]);
              msg_from = msgs[i].getOriginatingAddress();
              String msgBody = msgs[i].getMessageBody();
              Log.d("resulty", "Message From: " + msg_from + " and it says: " + msgBody);          
    }

    【讨论】:

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