将消息发送到保存的特定WhatsApp联系人,但不提供国家代码

问题描述 投票:1回答:1

此以下行向特定的Whats App联系人发送消息

"https://api.whatsapp.com/send?phone=" + phone + "&text=" + URLEncoder.encode(msg, "UTF-8");

参考:How can I send message to specific contact through WhatsApp from my android app?

但是上述网址需要电话号码和国家/地区代码。我需要发送消息到没有用国家代码保存的电话号码。如何做任何想法?

android android-intent whatsapp start-activity
1个回答
0
投票

我的意思是,您绝对需要以某种方式知道国家/地区代码。如果不存在,您也许可以从电话上获取它(例如,阅读此answer)。然后一旦有了它,您只需写

phone="+"+foundCountryCode+phone;

但是在执行此操作之前,您需要检查电话是否为nr。由于某些用户联系人可能来自其他国家(我们生活在全球化的世界中),因此尚没有国家/地区代码,因此只需检查电话字符串是否以“ +”或“ 00”开头,并仅在上述情况下进行调整没有。

我做了以下事情

public static String depuratePhone(String rawPhone){
    String phone=rawPhone.replace(" ","").replace("+","00").replace("-","");
    String depPhone=null;
    if (phone.length()>2){
        if (phone.substring(0,2).contentEquals("00")){
            depPhone=phone;
        }else{
            depPhone="00"+your_current_country_code+phone;
        }
    }
    return depPhone;

}

为了惊人地获得您自己的电话国家/地区代码,您似乎总是必须创建自己的国家/地区代码database,因为从电话中获得的所有内容都是您国家/地区的2个字母字符串代码。我也很惊讶没有办法直接从电话中获取此信息。太神奇了,我想知道这样做的理由是什么。

怪异的TelephonyManager甚至允许您获得自己的电话号码,如果您授予了它大量的权限,而不是简单的国家代码。

© www.soinside.com 2019 - 2024. All rights reserved.