从联系人视图,如何将联系人号码发送到我的短信应用程序,以向其发送短信
From a contact view, how to send a contact number to my sms app, to send an sms to it
我构建了一个短信应用程序,它支持短信活动的所有功能(仅短信)。但是现在,我的问题是,当我的应用程序已经是短信的默认应用程序时,当我想通过我的应用程序向它发送短信时,我无法从联系人视图中获取号码。这里有一些图片来解释我想要实现的目标。! When I click to the sms icon,my app is opened by I can't get the number
我没有任何代码来处理 activity 中的操作 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
来获取个人号码,如果您收到了多个号码。
我构建了一个短信应用程序,它支持短信活动的所有功能(仅短信)。但是现在,我的问题是,当我的应用程序已经是短信的默认应用程序时,当我想通过我的应用程序向它发送短信时,我无法从联系人视图中获取号码。这里有一些图片来解释我想要实现的目标。! When I click to the sms icon,my app is opened by I can't get the number 我没有任何代码来处理 activity 中的操作 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
来获取个人号码,如果您收到了多个号码。