没有获得短信中的号码和电话中的正确号码

时间:2013-04-30 04:42:09

标签: android

我在WebView中尝试过tel:和sms:点击后,如果我得到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;

    }

1 个答案:

答案 0 :(得分:0)

我认为此问题的最可能原因是您的网址不正确。所以你最好在logcat中检查一下。该网址应为tel:xxxxxxx,而不是其他任何内容。此外,代码中有几个不正确的东西。

首先,当网址以“ACTION_CALL”开头时,您应该使用ACTION_DIALACTION_VIEW而不是tel:。因为Phone应用程序中没有组件具有带ACTION_VIEW和数据模式tel的intent过滤器。

其次,您应该验证网址是否与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;

}