Android调用系统群发短信,vivo部分手机弹出“无效的地址”解决方法

第一次写文章,来试试水
之前项目中有一个需求是获取通讯录联系人信息,并展示出来,然后可以选择一个或者多个联系人跳转系统发信息界面(群)发短信,刚开始以为调用系统发信息很简单:

  // String mobile = "13812345678";  多个用“;”隔开,如"1890000000;1890000001";Intent intent = new Intent();intent.setAction(Intent.ACTION_SENDTO);intent.setData(Uri.parse(String.format("smsto:%s", mobile)));intent.putExtra("sms_body", "要发送的信息");startActivity(intent);

上面的 mobile 是手机号码String 型,如果有多个手机号用“;”隔开。
简单吧,测试的时候用小米、华为、荣耀、OPPO、魅族都测过了,没问题,发布
结果就死在vivo手机上了,当时老板的手机就是vivo(具体型号忘记了),选择多个联系人跳转到系统发信息界面弹出“无效的地址”,心都凉了,又是各种排查,各种百度,各种google,各种尝试,后来终于找到另一种方法:

       Intent intent = new Intent(Intent.ACTION_VIEW);intent.putExtra("address", mobile);intent.putExtra("sms_body", "要发送的信息");intent.setType("vnd.android-dir/mms-sms");startActivity(intent);

亲测有效!!!
另外,鉴于只在vivo手机才会出现上面这种情况,所以可以根据机型判断使用哪种方法,写个公共类SystemUtil,添加方法:

  /*** 获取手机厂商** @return 手机厂商*/public static String getDeviceBrand() {return android.os.Build.BRAND;}

然后调用:

  String deviceBrand = SystemUtil.getDeviceBrand();  //获取手机厂商if (TextUtils.equals(deviceBrand, "vivo")) {  //vivo手机 Intent intent = new Intent(Intent.ACTION_VIEW);intent.putExtra("address", mobile);intent.putExtra("sms_body", "要发送的信息");intent.setType("vnd.android-dir/mms-sms");startActivity(intent);}else{Intent intent = new Intent();intent.setAction(Intent.ACTION_SENDTO);intent.setData(Uri.parse(String.format("smsto:%s", mobile)));intent.putExtra("sms_body", "要发送的信息");startActivity(intent);}

当然,这个凭你自己喜好了,希望对大家有所帮助。

Android调用系统群发短信,vivo部分手机弹出“无效的地址”解决方法相关推荐

  1. android调用系统发送短信

    思路 1.获取用户输入的将要接收短信的号码: 2.获取用户输入的将要发生发送的短信内容 3.利用 Intent 调用系统发送短信: 实践 1.layout布局 <EditText android ...

  2. Android调用系统发送短信界面

    很多软件都有分享的功能,不少是支持短信分享的,其实就是调用系统发送短信的Activity.代码实现非常简单: /*** 发送短信* @param smsBody*/private void sendS ...

  3. Android 调用系统发短信界面,给指定号码发短信,并带短信内容

    工具类如下ContentUtil.java: package com.zhoucj.messagedemo.util; import android.content.Context; import a ...

  4. Android 调用系统发送短信界面,预设号码和短信内容

    相信很多开发的同学们免不了遇到过这个问题,就是调用系统的发送短信界面,其实这个问题还是比较容易的,只需向系统发送一个Intent,并附带相关参数就可以了,下面以一个demo说明. 类似下图的界面 ac ...

  5. iOS调用系统发短信功能详解

    iOS调用系统的发短信功能可以分为两种:1,程序外调用系统发短信.2,程序内调用系统发短信.第二种的好处是用户发短信之后还可以回到app.这对app来说非常重要. 程序外调用系统发短信 这个方法其实很 ...

  6. android ellipsize 多行,android TextView多行文本(超过3行)使用ellipsize属性无效问题的解决方法...

    android TextView多行文本(超过3行)使用ellipsize属性无效问题的解决方法 布局文件中的TextView属性 复制代码 代码如下: android:id="@+id/b ...

  7. Android通知栏Notification弹出横幅显示的解决方法

    Android通知栏Notification弹出横幅显示的解决方法 参考文章: (1)Android通知栏Notification弹出横幅显示的解决方法 (2)https://www.cnblogs. ...

  8. 如何用计算机弹出ink sans,Win10系统按“W”键弹出INK工作区的解决方法-电脑自学网...

    最近有使用Win10系统的用户反馈,只要不小心按照"W"键就会弹出INK工作区,因为不知道该如何解决而感到十分苦恼.对于这个问题,下面本文就为大家分享Win10系统按"W ...

  9. win10系统cmd模式下输入python弹出Windows应用商店 解决方法

    win10系统cmd模式下输入python弹出Windows应用商店 解决方法 解决方法1: 打开环境变量设置[此电脑->属性->高级系统设置->环境变量] 在变量Path中发现有% ...

最新文章

  1. 打开快手,体验流畅的单目三维手势技术
  2. PyTorch 保存模型结构参数及加载模型
  3. 数据结构实验之链表六:有序链表的建立
  4. 售达方、送达方的区别
  5. 11 个 Linux 上最佳的图形化 Git 客户端
  6. NuGet的简单使用
  7. 软件工程 Beta 阶段 团队贡献分数
  8. python paramiko使用
  9. Maven阿里云与本地仓库配置
  10. [转载]高性能托管应用程序设计入门
  11. linux下安装php扩展curl
  12. day4--numpy
  13. java.text.MessageFormat 专题
  14. 单细胞分析:细胞聚类(十)
  15. umount报错设备繁忙(device is busy)怎么处理?
  16. 超声波无线充电电动牙刷方案开发设计
  17. 单片机c语言灯开关程序,使用单片机模拟开关灯的电路图和资料及源代码概述...
  18. ubuntu 18.04 LORD 3DM-GX5-45 IMU ros_mscl ros驱动安装
  19. HTB-Cursed Secret Party
  20. 神舟zx8sp7s2装linux,战神ZX8-SP7S2游戏本搭GTX1070+桌面i7芯

热门文章

  1. oracle dmp 导入 mysql_oracle新数据库导入dmp文件
  2. python软件安装教程_python编程软件安装
  3. 牛客网 刷题前的准备工作(输入 输出 如何接收?)
  4. C语言实现MD5加密,竟如此简单!
  5. stm32单片机控制伺服电机转动固定角度
  6. html正方形边框,HTML实战篇:html制作边框为1px的九宫格
  7. 企业实战之VCSA 6.5的安装图文教程
  8. 数据分析笔记 七种基础数据分析思维方法
  9. 【博弈论】【第三讲】例题:沙滩博弈
  10. 如何禁止删除文件,如何防止文件夹被删除?