精华内容
下载资源
问答
  • 发送短信

    2012-09-18 16:28:21
    Android中短信主要采用SmsManager的sendTextMessage()方法来发送文字短信,sendTextMessage()方法有5个参数,第...第四个参数为PendingIntent对象,用于判断发送短信是否成功(可以为空),第五个参数也为PendingIntent

    Android中短信主要采用SmsManagersendTextMessage()方法来发送文字短信,sendTextMessage()方法有5个参数,第一个参数为对方的手机号码(不能为空),第二个参数为发送方的手机号号码(可以为空),第三个参数为发送的短信内容(不能为空),第四个参数为PendingIntent对象,用于判断发送短信是否成功(可以为空),第五个参数也为PendingIntent对象,当用户接收到短信时会返回该对象(可以为空)。

    现在新建一个名为Sample15Android项目,在main.xml中添加一个TextView、两个EditText和一个Button。其中一个EditText用于输入电话号码,另外一个EditText用于输入发送的短信内容,Button按钮用于发送短信,同时设置EditTextinputType属性为phone,即EditText只能输入电话号码。如下图所示:

    然后在Sample15Activity.java中为按钮添加单击事件,当点击按钮时向指定号码发送短信内容。Sample15Activity.java中的代码如下:

    publicclass Sample15Activity extends Activity {

        /** Called when the activity is first created. */

        @Override

        publicvoid onCreate(Bundle savedInstanceState) {

            super.onCreate(savedInstanceState);

            setContentView(R.layout.main);

           

            ButtonsendButton=(Button)findViewById(R.id.sendbutton);//发送短信按钮

           sendButton.setOnClickListener(new OnClickListener(){

               @Override

               publicvoid onClick(View v) {

                  // TODO Auto-generated method stub            

                  EditTextphoneText=(EditText)findViewById(R.id.phoneNumEditText);//电话号码

                  EditTextmsgText=(EditText)findViewById(R.id.msgEditText);//短信内容          

                  StringphoneNum=phoneText.getText().toString();//获取发送到的电话号码           

                  Stringmsg=msgText.getText().toString();//获取发送的短信内容

                  SmsManagersmsManager=SmsManager.getDefault();//获取默认的SMS管理器

                  smsManager.sendTextMessage(phoneNum,null, msg, null, null);//发送文本短信

                  msgText.setText("");//设置短信输入框内容为空        

               }});

        }

    }

    最后,还需要在AndroidManifest.xmlmanifest节下添加可以发送短信的用户许可,如下:

        <uses-permission android:name="android.permission.SEND_SMS"/>

    运行程序,在两个模拟机上运行结果如下图所示:



    展开全文
  • android 实现发送短信功能

    万次阅读 多人点赞 2019-07-04 11:09:05
    在学习的视频里面发现了这个发送短信的功能实现 就好奇写了一个小demo 先看一下页面的效果吧 很简单的布局 两个输入框 一个按钮 看一下具体的实现效果emmmm 模拟器上看不出来效果 骚等.... 点击发送短信 提示...

    离职五天左右 学习了一些基础理论并用于实践,也算是学到了点东西

    1.实现短信的发送功能

     在学习的视频里面发现了这个发送短信的功能实现 就好奇写了一个小demo

    先看一下页面的效果吧

    很简单的布局 两个输入框 一个按钮 看一下具体的实现效果 emmmm 模拟器上看不出来效果  骚等....

     点击发送短信 提示了发送成功 看一下能否接收到短信呢? 那就一起来看一下吧

    成功的发送过来了 也是非常的nice 

    一起来看看代码吧

    public class SendSMSSActivity extends AppCompatActivity {
        private EditText edContent;
        private EditText edPhone;
    
        private static final int SEND_SMS = 100;
    
    
        @Override
        protected void onCreate(Bundle savedInstanceState) {
            super.onCreate(savedInstanceState);
            setContentView(R.layout.activity_send_smss);
    
            edContent = findViewById(R.id.ed_content);
            edPhone = findViewById(R.id.ed_phone);
            Button btSend = findViewById(R.id.bt_sendSMSS);
            btSend.setOnClickListener(new View.OnClickListener() {
                @Override
                public void onClick(View view) {
                    requestPermission();
                }
            });
        }
    
    
    
    
        private void requestPermission() {
            //判断Android版本是否大于23
            if (Build.VERSION.SDK_INT >= Build.VERSION_CODES.M) {
                int checkCallPhonePermission = ContextCompat.checkSelfPermission(this, Manifest.permission.CALL_PHONE);
                if (checkCallPhonePermission != PackageManager.PERMISSION_GRANTED) {
                    ActivityCompat.requestPermissions(this, new String[]{Manifest.permission.SEND_SMS}, SEND_SMS);
                    return;
                } else {
                    sendSMSS();
                    //已有权限
                }
            } else {
                //API 版本在23以下
            }
        }
    
        /**
         * 注册权限申请回调
         *
         * @param requestCode  申请码
         * @param permissions  申请的权限
         * @param grantResults 结果
         */
        @Override
        public void onRequestPermissionsResult(int requestCode, String[] permissions, int[] grantResults) {
            switch (requestCode) {
                case SEND_SMS:
                    if (grantResults[0] == PackageManager.PERMISSION_GRANTED) {
                        sendSMSS();
                    } else {
                        // Permission Denied
                        Toast.makeText(SendSMSSActivity.this, "CALL_PHONE Denied", Toast.LENGTH_SHORT).show();
                    }
                    break;
                default:
                    super.onRequestPermissionsResult(requestCode, permissions, grantResults);
            }
        }
    
        //发送短信
        private void sendSMSS() {
            String content = edContent.getText().toString().trim();
            String phone = edPhone.getText().toString().trim();
            if (!StringUtil.isEmpty(content) && !StringUtil.isEmpty(phone)) {
                SmsManager manager = SmsManager.getDefault();
                ArrayList<String> strings = manager.divideMessage(content);
                for (int i = 0; i < strings.size(); i++) {
                    manager.sendTextMessage(phone, null, content, null, null);
                }
                Toast.makeText(SendSMSSActivity.this, "发送成功", Toast.LENGTH_SHORT).show();
            } else {
                Toast.makeText(this, "手机号或内容不能为空", Toast.LENGTH_SHORT).show();
                return;
            }
    
        }
    }

     

    SmsManager 短信管理器

    不多介绍 就说一下发送短信中的sendTextMessage方法 

    manager.sendTextMessage(destinationAddress, scAddress, text, sentIntent, deliveryIntent);

    destinationAddress: 收件人号码 

    scAddress: 短信中心服务号码, 这里设置为null 

    text: 发送内容

    sentIntent: 发送短信结果状态信号(是否成功发送),new 一个Intent , 操作系统接收到信号后将广播这个Intent.此过程为异步.

    deliveryIntent: 对方接收状态信号(是否已成功接收).

     

     短信属于危险权限组记得动态权限0.0 

    发送短信就分享到这里啦~~~

    展开全文
  • 安卓短信功能全解:调用系统短信功能发送短信、彩信,使用SmsManager发送短信,并监听发送短信的投递情况,使用广播接收器监听接收的短信。首先需要添加短信功能的权限 <uses-permission android:
    
        ad1.jpg
    

    全栈工程师开发手册 (作者:栾鹏)
    安卓教程全解

    安卓短信功能全解:调用系统短信功能发送短信、彩信,使用SmsManager发送短信,并监听发送短信的投递情况,使用广播接收器监听接收的短信。

    首先需要添加短信功能的权限

    <uses-permission android:name="android.permission.SEND_SMS"/>
    <uses-permission android:name="android.permission.RECEIVE_SMS"/>
    

    调用系统短信功能发送短信

    注意:由于目前手机多存在双卡双待、网络短信,所以还需要选择发送的卡,因此这里只会启动系统短信发送界面,还没有自动发送

    调用发送函数
    send_message("12345678911","这是代码发送的一条短信");
    
    短信发送函数
      private void send_message(String number,String message) {
      	//使用系统短信服务栈发送短信
        Intent smsintent = new Intent(Intent.ACTION_SENDTO, Uri.parse("smsto:"+number));
        smsintent.putExtra("sms_body",message);
        startActivity(smsintent);  //由于目前手机多存在双卡双待、网络短信,所以还需要选择发送的卡,因此这里只会启动系统短信发送界面,还没有自动发送
      }
    

    调用系统彩信功能发送媒体信息(彩信,邮件)

    调用发送函数
    send_mulmessage("12345678911","这是代码发送的一条彩信");
    
    彩信发送函数
     private void send_mulmessage(String number,String message) {
        //获得要附加的一个媒体的uri
        Uri attached_Uri=Uri.parse("content://media/external/images/media/1");
        //创建一个新的MMS intent
        Intent mmsIntent=new Intent(Intent.ACTION_SEND,attached_Uri);
        mmsIntent.putExtra("sms_body", message);
        mmsIntent.putExtra("address", number);
        mmsIntent.putExtra(Intent.EXTRA_STREAM, attached_Uri);
        mmsIntent.setType("image/jpeg");
        startActivity(mmsIntent);
      }
    

    使用SmsManager 发送sms短信信息

    使用SmsManager短信管理器发送短信,不会启动系统短信发送界面,但是由于短信在发送成功、失败、接收者接收成功、失败、是否已读等消息,安卓系统都会通过广播形式向系统所有app进行广播,所以仍然会在系统自带短信功能中留下痕迹。

    在使用SmsManager发送短信时,需要自定义短信发送广播接收事件、短信送达广播接收事件。另外要注意将短信按运营商的限制长度进行分割。

    由于目前手机多存在双卡双待、网络短信,所以还需要选择发送的卡,这种自动发送的短信,没法选择发送模式,所以会存在发送失败的情况

    调用发送函数
    sendsms("12345678911","这是代码发送的一条短信");
    
    短信发送函数
    private void sendsms(String number,String message) {
    	//获取短信管理器   
        android.telephony.SmsManager smsManager = android.telephony.SmsManager.getDefault(); 
    
    	String sent_sms_action = "com.lp.app.send_sms_action";   //短信发送成功(只是一个名称)
    	String delivered_sms_action ="com.lp.app.delivered_sms_action";  //短信送达成功(只是一个名称)
      
    	//创建sentintent参数
    	Intent sentIntent = new Intent(sent_sms_action);
    	PendingIntent sendpi =PendingIntent.getBroadcast(getApplicationContext(), 0, sentIntent, PendingIntent.FLAG_UPDATE_CURRENT);
    	  
    	//创建deliveryintent参数
    	Intent deliveryIntent=new Intent(delivered_sms_action);
    	PendingIntent deliverpi = PendingIntent.getBroadcast(getApplicationContext(), 0, deliveryIntent, PendingIntent.FLAG_UPDATE_CURRENT);
    	
    	//注册broadcast receiver,用于在消息发生成功或者失败时触发
    	registerReceiver(new BroadcastReceiver(){
    		@Override
    		public void onReceive(Context context, Intent intent) {
    			String resulttext = "unknown";
    			switch (getResultCode()) {
    				case Activity.RESULT_OK:resulttext="发送成功";break;
    				case android.telephony.SmsManager.RESULT_ERROR_GENERIC_FAILURE:resulttext="发送失败";break;
    				case android.telephony.SmsManager.RESULT_ERROR_RADIO_OFF:resulttext="发送失败,无线处于关闭状态";break;
    				case android.telephony.SmsManager.RESULT_ERROR_NULL_PDU:resulttext="发送失败,没有指定的PDU";break;
    				case android.telephony.SmsManager.RESULT_ERROR_NO_SERVICE:resulttext="发送失败,无服务";break;
    				default:break;
    			}
    			Log.v("发送的短信", resulttext);
    		}
    	}, new IntentFilter(sent_sms_action));  //用指定名称的事件来触发这个接收机
    	
    	//注册broadcast receiver,用于仅在接收人接收到sms消息后触发
    	registerReceiver(new BroadcastReceiver(){
    		@Override
    		public void onReceive(Context context, Intent intent) {
    			String resulttext = "unknown";
    			switch (getResultCode()) {
    				case android.telephony.SmsManager.STATUS_ON_ICC_FREE:resulttext="自由空间";break;
    				case android.telephony.SmsManager.STATUS_ON_ICC_READ:resulttext="接收且已读";break;
    				case android.telephony.SmsManager.STATUS_ON_ICC_SENT:resulttext="存储且已发送";break;
    				case android.telephony.SmsManager.STATUS_ON_ICC_UNREAD:resulttext="接收但未读";break;
    				case android.telephony.SmsManager.STATUS_ON_ICC_UNSENT:resulttext="存储但未发送";break;
    				default:break;
    			}
    			Log.v("发送的短信", resulttext);
    		}
    		
    	},  new IntentFilter(delivered_sms_action)); //用指定名称的事件来触发这个接收机
    	  
    
    	//拆分短信内容(手机短信长度限制)    
        List<String> divideContents = smsManager.divideMessage(message);   
        for (String text : divideContents) {    
        	//由于目前手机多存在双卡双待、网络短信,所以还需要选择发送的卡,这种自动发送的短信,没法选择发送模式,所以会存在发送失败的情况
            smsManager.sendTextMessage(number, null, text, sendpi, deliverpi);    //参数:接收人,所有用的SMS服务中心,消息内容,跟踪传输的intent,消息成功递送的intent
            //smsManager.sendDataMessage(destinationAddress, scAddress, destinationPort, data, sentIntent, deliveryIntent);  //发送byte[]
            //smsManager.sendMultipartTextMessage(destinationAddress, scAddress, parts, sentIntents, deliveryIntents);  //发送多部分字符串内容
        }  
    

    广播监听接收到的短信

    在系统接收到短信后,系统会全局广播一个事件,事件中附加了短信的全部内容信息,我们可以通过注册广播接收来获取短信内容和相关信息。

    1、首先在manifest中注册一个广播接收

    <!-- 短信接收监视-->
    <receiver android:name="com.lp.app.advice.SMSReceiver" >
    	<intent-filter>
    	<action android:name="android.provider.Telephony.SMS_RECEIVED"/>
    	</intent-filter>
    </receiver>
    

    2、自定义广播接收器,解析接收到的短信

    import android.content.Intent;
    import android.os.Bundle;
    import android.content.BroadcastReceiver;
    import android.content.Context;
    import android.util.Log;
    
    //使用intent receiver监视接收的短信
    public class SMSReceiver extends BroadcastReceiver {
    	
    	  @Override
    	  public void onReceive(Context context, Intent intent) {
    		  Bundle bundle=intent.getExtras();
    		  if (bundle!=null) {
    			Object[] pdus = (Object[])bundle.get("pdus"); //pdus是一个object类型的数组,每一个object都是一个byte[]字节数组,每一项为一条短信。
    			android.telephony.SmsMessage[] messages = new android.telephony.SmsMessage[pdus.length];
    			for (int i = 0; i < pdus.length; i++) 
    				messages[i]=android.telephony.SmsMessage.createFromPdu((byte[])pdus[i]);
    			for(android.telephony.SmsMessage message: messages){
    				String msg = message.getMessageBody();   //获取消息内容
    				long when = message.getTimestampMillis();  //获取消息时间戳
    				String from =message.getOriginatingAddress();  //获取消息来源
    				Log.v("接收到的短息", "消息:"+msg);
    				Log.v("接收到的短息", "时间:"+when);
    				Log.v("接收到的短息", "发件人:"+from);
    			}
    		  }
    	  }
    }
    
    展开全文
  • 使用HttpClient发送短信

    千次阅读 2018-12-27 18:05:01
    没有阿里云短信账号的同学可以选择httpClient方式发送短信 一、注册账号 去中国网建 注册一个账号,或者去其他短信网站注册。注册成功后会赠送5条短信,在修改用户信息里填写你的短信签名,发送短信时格式如下: ...

    没有阿里云短信账号的同学可以选择httpClient方式发送短信

    一、注册账号

    中国网建 注册一个账号,或者去其他短信网站注册。注册成功后会赠送5条短信,在修改用户信息里填写你的短信签名,发送短信时格式如下:

    【短信签名】 短信内容
    

    enter image description here

    点击修改短信秘钥,可查看你的短信秘钥,短信接口中需要填写此信息,勿泄露,如图:

    enter image description here

    二、下载jar包

    点击短信API接口,跳转至接口介绍页面,有各种语言发送短信的案例

    enter image description here

    3.JAVA调用案例下面下载jar包

    enter image description here

    三、java发送短信代码

    public static void sendMsg(String phone,String text) throws IOException {
        HttpClient client = new HttpClient();
        PostMethod post = new PostMethod("http://gbk.api.smschinese.cn");
        post.addRequestHeader("Content-Type","application/x-www-form-urlencoded;charset=gbk");//在头文件中设置转码
        NameValuePair[] data ={ new NameValuePair("Uid", "你的登录名"),new NameValuePair("Key", "你的短信秘钥"),new NameValuePair("smsMob",phone),new NameValuePair("smsText",text)};
        post.setRequestBody(data);
    
        client.executeMethod(post);
        Header[] headers = post.getResponseHeaders();
        int statusCode = post.getStatusCode();
        System.out.println("statusCode:"+statusCode);
        for(Header h : headers)
        {
            System.out.println(h.toString());
        }
        String result = new String(post.getResponseBodyAsString().getBytes("gbk"));
        System.out.println("打印返回消息状态:"+result); //打印返回消息状态
    
    
        post.releaseConnection();
    
    }
    

    main函数发送短信测试

    public static void main(String[] args) {
        try {
            sendMsg("176xxxxxxxx","登录验证码为:"+800632);
        } catch (IOException e) {
            e.printStackTrace();
        }
    }

     

    访问我的达人课

    访问我的博客 Wang's Blog

    关注我的微信公众号获取更多资源

     

    展开全文
  • java实现发送短信验证码功能

    千次下载 热门讨论 2015-04-17 19:44:36
    使用的是信易通的短信平台接口,然后在Java中使用HttpClient模拟POST请求或者GET请求(看短信平台要求,一般的情况下都是POST请求),调用短信平台提供的接口(遵循短信平台的接口规范即可)发送短信验证码
  • MAS短信平台发送短信分为两种方式 参考文档下载 一、sdk调用 using mas.ecloud.sdkclient; using System; namespace 短信发送 { class Program { private static Client client = Client.instance...
  • Java发送短信

    2019-06-11 08:20:20
    7、发送短信: 8、注意事项: 1、网上注册用户: 在中国网建中注册用户,本程序是通过中国网建提供的SMS短信平台实现的,该平台新用户注册可以拥有免费5条普通短信和3条彩信,足够进行尝试和体验了。 2、修改...
  • 所以接下来就把发送短信的具体实现过程记录下来,既是为了自己以后查阅方便,也是想分享给大家,如果有什么不足的地方欢迎大家不吝指出。 这里我使用的是腾讯云提供的短信服务,使用该服务之前我们需要完成认证,有...
  • python:发送短信

    2018-06-16 19:23:56
    发送短信 发送短信也是项目中常见的功能,网站的注册码、验证码、营销信息基本上都是通过短信来发送给用户的。在下面的代码中我们使用了互亿无线短信平台(该平台为注册用户提供了50条免费短信以及常用开发语言发送...
  • 业务中发送短信:在完成订单后给用户发送短信提示。 ETL发送:通过一些数据分析需求,给一些筛选出的用户发送特定的短信(例:在订单快要过期的前两天发送提示短信。) 自定义发送:提供使用页面,上传需要发送的...
  • 我想知道,用perl脚本调用短信接口发送短信,之后如何让把接口返回码和数据一起写入到oracle数据库中,存放在一张表中,脚本该怎么写啊?
  • 使用阿里云的短信服务发送短信

    千次阅读 2019-04-11 00:02:00
    原文地址使用阿里云的短信服务发送短信 在给客户开发一个信息发送功能的时候,需要涉及到短信的发送,短信发送一般不同的厂商提供的接口不同,处理方式也不太一样,之前用的一个厂商的,提供了一个封装类就很容易...
  • 发送手机号码通知或者短信,我们可以通过平台来自动批量的发送短信。 需要先在平台上面完成身份认证、签名认证、信息内容报备,平台审核通过后才可以使用。 测试 下面是以"秒赛科技"来进行测试,之前有试过阿里云,...
  • Java 发送短信验证码

    千次阅读 2018-08-27 17:10:23
    Java 发送短信验证码给手机 发送短信验证码其实很简单,就是调用一下第三方的短信API接口,填写参数,发送请求,第三方平台会将信息发送给对方手机当中 介绍 我个人测试所使用的第三方API是“秒嘀”,理由是因为...
  • smgp3.0发送短信不稳定

    2019-05-23 10:16:10
    smgp3.0发送短信,短信过长需要拆分,短信拆分后存在部分发送不成功的情况;比如一条内容被拆分成四条短信进行发送,但是收到其中的哪几条是不稳定的。求助该如何解决?
  • 网络爬虫实现发送短信验证码

    千次阅读 多人点赞 2021-02-22 11:18:05
    网络爬虫实现发送短信 在实现我们目标的功能之前,我们要有自己的思路,否则你没有方向,又如何实现自己的代码功能呢? 我们要发送短信,那么我们其实是需要分析的。我们可以去分析一个可以发送短信的网站页面。 ...
  • 调用阿里云短信API发送短信通知 昨天领导让我弄一个短信通知功能,原来也没有搞过,刚接过来的时候亚历山大,感觉很难搞。但是看过官方文档之后还是挺简单的。来让我们看一下这个短信接口怎么搞吧。 首先你需要申请...
  • java调用webservice调用短信接口发送短信 本人现在有个功能是发送短信验证码,第三方只给了一个url,领导说利用web service调用短信接口就好了 求助一下 具体实现的思路和技术点
  • 1. 调用系统发送短信界面(并指定短信接收人和短信内容)  Uri smsToUri = Uri.parse("smsto:10086");   Intent mIntent = new Intent(android.content.Intent.ACTION_SENDTO, smsToUri );   mIntent....
  • java实现发送短信

    万次阅读 2018-01-19 16:23:08
    java实现发送短信(本章调用阿里云API) 地址如下 https://market.aliyun.com/products/56928004/cmapi022659.html?spm=5176.2020520132.101.5.TsClbR#sku=yuncode16659000011 进入控制台得到AppCode 告诉商家...
  • Java实现发送手机验证码,发送短信

    千次阅读 2019-09-28 12:40:22
    发送短信,我们需要第三方提供的短信接口,这里我使用阿里云的短信服务。 首先进入阿里云的官网,然后注册。登陆之后选择云通信——》短信服务 然后点击免费开通。 开通后进入控制中心,选择右上方的支持与服务...
  • Android接收和发送短信

    千次阅读 2016-08-21 22:31:20
    每一部手机都具有短信接收和发送功能,下面我们通过代码来实现接收和发送短信功能。 一、接收短信1、创建内部广播接收器类,接收系统发出的短信广播 2、从获得的内容中解析出短信发送者和短信内容 3、在Activity中...
  • Java SDK发送短信验证码

    千次阅读 2018-06-15 17:33:35
    上次记录了如何发送邮件,其实发送短信和发送邮件差不多。只不过发邮件是不收费的,发短信是要收费的。   这次就来说说怎么样发送短信验证码。   ▍实验条件   首先说明一下这篇文章所介绍的发送短信过程中...
  • Android发送短信验证码

    千次阅读 2015-10-31 22:39:38
    Android发送短信验证码
  • Java实现发送短信 学习视频地址:https://www.bilibili.com/video/av93808102 一.开通短信服务 1.百度搜索阿里大鱼 2.登录或注册(我是用支付宝登录的) 3.点击进入短信服务 点击短信服务 点击管理控制台 短信...
  • 如何发送短信验证码

    千次阅读 2018-07-08 21:07:03
    如何发送短信验证码短信验证码是一种有效的验证方式,它可以大大的增加网站和APP的安全性,防止用户恶意注册,其工作原理就是,用户在注册框,输入自己的手机号码,点击获取短信验证码,然后网站后台和APP后台生产...
  • Android 双卡发送短信

    千次阅读 2016-03-29 17:05:13
    Adnroid双卡手机发送短信
  • 五分钟解决 Java发送短信业务 短信业务使用的是阿里云的短信业务 短信是0.045元每条,不过阿里云会送几十条短信来让我们去测试完成这个功能。 首先打开阿里云官网 阿里云官网 进入首页 搜索短信服务 点击开通 在...
  • App内发送短信

    千次阅读 2017-12-12 14:53:48
     App 内发送短信是不用跳出App利用手机系统的发短信页面直接在本App内就可以发送短信的功能。本功能在 iOS4.0 的时被引入进来,主要是使用 #import  头文件下的 MFMessageComposeViewController 类。 第...

空空如也

空空如也

1 2 3 4 5 ... 20
收藏数 28,541
精华内容 11,416
关键字:

发送短信