Android 短信息中找不到号码,电话中找不到正确号码
我在WebView中尝试过电话和短信。点击后,若我得到包含电话的URL,那个么我将打开电话的呼叫实用程序。然后我得到一个数字,后面跟着字符“N”。 一个在短信:我得到手机短信实用程序,但没有号码。在两个URL中,都有一个URL编号Android 短信息中找不到号码,电话中找不到正确号码,android,Android,我在WebView中尝试过电话和短信。点击后,若我得到包含电话的URL,那个么我将打开电话的呼叫实用程序。然后我得到一个数字,后面跟着字符“N”。 一个在短信:我得到手机短信实用程序,但没有号码。在两个URL中,都有一个URL编号 @Override public boolean shouldOverrideUrlLoading(WebView view, String url) { result = false; // for telephone
@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;
}
我认为这个问题最可能的原因是你的url不正确。所以你最好在logcat上查一下。url应该是
tel:xxxxxxx
而不是其他任何内容。此外,您的代码中有几处不正确
首先,当url以“tel:
”开头时,您应该使用ACTION\u CALL
或ACTION\u DIAL
而不是ACTION\u VIEW
。因为在电话应用程序中没有包含带有ACTION\u VIEW
和数据模式tel的意图过滤器的组件
第二,您应该验证url是否为startsWithtel:
和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;
}