未收到短信中的电话号码和电话号码中的正确号码
问题描述:
我试过电话:和短信:在WebView中。点击后,如果我得到URL包含电话:那么我打开电话的实用工具。然后我得到数字后跟字符'N'。 一个在短信:我越来越短信实用的手机,但没有号码。在这两个URL号码是存在的。未收到短信中的电话号码和电话号码中的正确号码
@Override
public boolean shouldOverrideUrlLoading(WebView view, String url) {
result = false;
// for telephone
if (url.contains("tel:")) {
view.getContext().startActivity(
new Intent(Intent.ACTION_VIEW, Uri.parse(url)));
result = true;
}
// for SMS or message.
if (url.contains("sms:")) {
view.getContext().startActivity(
new Intent(Intent.ACTION_VIEW, Uri.parse(url)));
result = true;
}
Log.d(TAG, url);
return result;
}
答
我认为这个问题最可能的原因是你的网址不正确。所以你最好在logcat中检查它。该网址应该是tel:xxxxxxx
没有别的。此外,在您的代码中有几件事情不正确。
首先,当url以“tel:
”开头时,您应该使用ACTION_CALL
或ACTION_DIAL
而不是ACTION_VIEW
。因为Phone应用程序中没有包含ACTION_VIEW
和数据模式tel的意向过滤器的组件。
其次,你应该验证网址是不是包含了tel:
和sms:
。
例如:
public boolean shouldOverrideUrlLoading(WebView view, String url) {
result = false;
// for telephone
if (url.startsWith("tel:")) {
view.getContext().startActivity(
new Intent(Intent.ACTION_CALL, Uri.parse(url)));
result = true;
}
// for SMS or message.
if (url.startsWith("sms:")) {
view.getContext().startActivity(
new Intent(Intent.ACTION_VIEW, Uri.parse(url)));
result = true;
}
Log.d(TAG, url);
return result;
}