我需要从不同类型的意图中检索电话号码。案例的意图如下:
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。
由于谷歌本身缺乏文档,我找不到任何东西,所以任何答案都会非常有帮助!提前致谢。