利用Intent 发送短信和打电话

来源:互联网 发布:大乐透软件0416ren 编辑:程序博客网 时间:2024/05/17 17:55

发短信

参数的意义:
– destinationAddress:目标电话号码
– scAddress:短信中心号码,测试可以不填
– text: 短信内容
– sentIntent:发送 –>中国移动 –> 中国移动发送失败 –> 返回发送成功或失败信号 –> 后续处理 即,这个意图包装了短信发送状态的信息
– deliveryIntent: 发送 –>中国移动 –> 中国移动发送成功 –> 返回对方是否收到这个信息 –> 后续处理 即:这个意图包装了短信是否被对方收到的状态信息(供应商已经发送成功,但是对方没有收到)。

 SmsManager sms = SmsManager.getDefault(); sms.sendTextMessage("156*******9", null, "nihao", sentPI, null);//发送普通文本信息 //short port = 1000; //sms.sendDataMessage("156*******9", null, port, null, null, null);//发送一些非文本,比如加密数据
   /**     * 直接调用短信接口发短信     *     * @param phoneNumber     * @param message     */    public void sendSMS(String phoneNumber, String message) {        //获取短信管理器        android.telephony.SmsManager smsManager = android.telephony.SmsManager.getDefault();        //拆分短信内容(手机短信长度限制)        List<String> divideContents = smsManager.divideMessage(message);        /*for (String text : divideContents) {            System.out.println("MainActivity.sendSMS text=" + divideContents.get(0));            // smsManager.sendTextMessage(phoneNumber, null, text, sentPI, deliverPI);        }*/        System.out.println("MainActivity.sendSMS" + divideContents.size());        for (int i = 0; i < divideContents.size(); i++) {            System.out.println("MainActivity.sendSMS text=" + divideContents.get(i));        }    }
///调用系统的短信界面,这个方法自动设置接收方的号码 ,经测试可以    private void send1(String number, String message) {        Uri uri = Uri.parse("smsto:" + number);        Intent sendIntent = new Intent(Intent.ACTION_VIEW, uri);        sendIntent.putExtra("sms_body", message);        startActivity(sendIntent);    }   /**     * 调起系统发短信功能     *     * @param phoneNumber     * @param message     */    public void doSendSMSTo(String phoneNumber, String message) {        if (PhoneNumberUtils.isGlobalPhoneNumber(phoneNumber)) {            Intent intent = new Intent(Intent.ACTION_SENDTO, Uri.parse("smsto:" + phoneNumber));            intent.putExtra("sms_body", message);            startActivity(intent);        }    }

打电话

 if (ActivityCompat.checkSelfPermission(this, Manifest.permission.CALL_PHONE) != PackageManager.PERMISSION_GRANTED) {            // TODO: Consider calling            //    ActivityCompat#requestPermissions            // here to request the missing permissions, and then overriding            //   public void onRequestPermissionsResult(int requestCode, String[] permissions,            //                                          int[] grantResults)            // to handle the case where the user grants the permission. See the documentation            // for ActivityCompat#requestPermissions for more details.            Intent intent = new Intent(Intent.ACTION_CALL, Uri.parse("tel:" + "188********9"));            startActivity(intent);            return;        }

权限:

    <uses-permission android:name="android.permission.SEND_SMS" />    <uses-permission android:name="android.permission.READ_SMS" />    <uses-permission android:name="android.permission.RECEIVE_SMS" />    <!--打电话权限的设置:-->    <uses-permission android:name="android.permission.CALL_PHONE"/>
0 0
原创粉丝点击