向未保存国家代码的特定 WhatsApp 联系人发送消息

Send msg to particular WhatsApp contact saved without country code

下面这行向特定的 Whats App 联系人发送消息

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

参考:

但是上面的URL需要有国家代码的phone号码。我需要将消息发送到 phone 没有保存国家代码的号码。有什么想法吗?

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

phone="+"+foundCountryCode+phone;

但在此之前,您需要检查 phone nr.还没有国家代码,因为一些用户联系人可能来自其他国家(我们生活在一个全球化的世界)所以只需检查 phone 字符串是否以“+”或“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;

}

为了获得您自己的 phone 国家代码,您似乎总是必须创建自己的 database 国家代码,因为您可以从 phone 获得的是您所在国家/地区的 2 个字母字符串代码。我也很惊讶没有办法直接从 phone 中获取它。太棒了,我想知道这样做的理由是什么。

如果您授予大量权限而不是简单的国家/地区代码,那该死的 TelephonyManager 甚至可以让您获得自己的 phone 号码。