[英]From a contact view, how to send a contact number to my sms app, to send an sms to it
我已经构建了一个短信应用程序,它支持短信活动的所有功能(仅限短信)。 但现在,我的问题是,当我的应用程序已经是短信的默认应用程序时,当我想通过我的应用程序发送短信时,我无法从联系人视图中获取该数字。 这里有图像来解释我想要实现的目标。 当我点击短信图标时,我的应用程序被打开,我无法获取号码我没有任何代码来处理我的活动中的动作SEND / SENDTO,但我刚刚提到了intent-filter:action.SEND,清单文件中的action.SENDTO,因为如果我们想要将应用程序选为默认的短信应用程序,则必须这样做。 我认为联系人视图中的数字是从onActivityResult访问的,但它似乎不起作用,请帮忙!
从联系人获取SENDTO
时,数字(可能是多个数字)将作为数据Uri
附加到启动您的Activity
的Intent
上。 初始化Activity
,请检查相应的操作,并在必要时检索数字。
一个基本的例子:
if (Intent.ACTION_SENDTO.equals(getIntent().getAction())) {
Uri data = getIntent().getData();
String numbers = data.getSchemeSpecificPart();
}
对于更加可靠的实现,删除可能在Uri
上的任何其他参数并替换任何非拉丁数字是谨慎的。
if (Intent.ACTION_SENDTO.equals(getIntent().getAction())) {
Uri data = getIntent().getData();
String numbers = data.getSchemeSpecificPart();
// Strip any extraneous parameters
int i = numbers.indexOf('?');
numbers = (i == -1) ? numbers : numbers.substring(0, i);
// Replace non-Latin digits, and ensure our delimiter is something we expect
numbers = PhoneNumberUtils.replaceUnicodeDigits(numbers).replace(",", ";");
...
}
如果收到多个数字,它们应该以逗号或分号分隔的String
。 上面用分号替换逗号,所以我们以后不必担心使用哪个。 如果您收到多个数字,则可以简单地split()
numbers
以获得单个数字。
声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.