安卓短信功能的实现

上传人:第*** 文档编号:34412862 上传时间:2018-02-24 格式:DOC 页数:6 大小:133KB
返回 下载 相关 举报
安卓短信功能的实现_第1页
第1页 / 共6页
安卓短信功能的实现_第2页
第2页 / 共6页
安卓短信功能的实现_第3页
第3页 / 共6页
安卓短信功能的实现_第4页
第4页 / 共6页
安卓短信功能的实现_第5页
第5页 / 共6页
点击查看更多>>
资源描述

《安卓短信功能的实现》由会员分享,可在线阅读,更多相关《安卓短信功能的实现(6页珍藏版)》请在金锄头文库上搜索。

1、Android 短信功能的实现调用系统短信接口直接发送短信这个项目是通过自己编的 App 发送手机短信。本人也是初学者,项目代码都是网上前辈的。首先向无私的前辈致谢!此文中包含了所有关键代码,且已经在手机上测试成功。本人水平有限,如有错误请自行修改。作者 SDK 版本号:首先上界面图:1、新建一个 Android 工程(略)2、在 AndroidMainfest.xml 中加入所需要的权限:为了后面测试方便,干脆把 SMS 的所有权限加上。3、下面是 main.xml,界面代码:4、在 main.xml 中调用到了 strings.xml 和 dimens.xml,下面是代码:strings.

2、xmlSendMessage联系人:请输入联系人发送内容:请输入短信内容发 送联系人不能为空短信已发出Settingsdimens.xml16dp16dp5、在 MainActivity.java 中编写发送短信的逻辑代码:package alex.example.sendmessage;import java.util.List;import android.support.v7.app.ActionBarActivity;import android.telephony.SmsManager;import android.app.Activity;import android.app.Pe

3、ndingIntent;import android.content.BroadcastReceiver;import android.content.Context;import android.content.Intent;import android.content.IntentFilter;import android.os.Bundle;import android.view.Menu;import android.view.MenuItem;import android.view.View;import android.view.View.OnClickListener;impor

4、t android.widget.Button;import android.widget.EditText;import android.widget.Toast;public class MainActivity extends ActionBarActivity private EditText phone_number_editText;private EditText send_sms_editText;private Button button_Send;Overrideprotected void onCreate(Bundle savedInstanceState) super

5、.onCreate(savedInstanceState);setContentView(R.layout.activity_main);/* 对控件进行实例化操作 */phone_number_editText = (EditText) findViewById(R.id.phone_number_editText);send_sms_editText = (EditText) findViewById(R.id.send_sms_editText);button_Send = (Button) findViewById(R.id.button_Send);/* 设置按钮监听器 */butt

6、on_Send.setOnClickListener(new OnClickListener() Overridepublic void onClick(View v) /* 如果想知道短信发送后的状态,需要两个 Receiver 来实现,下面框中代码实现 */String SENT = sms_sent;String DELIVERED = sms_delivered;Intent sentIntent = new Intent(SENT);Intent deliveredIntent = new Intent(DELIVERED);PendingIntent sentPI = Pendin

7、gIntent.getBroadcast(getApplicationContext(), 0, sentIntent, 0);PendingIntent deliveredPI = PendingIntent.getBroadcast(getApplicationContext(), 0, deliveredIntent, 0);registerReceiver(new BroadcastReceiver() Overridepublic void onReceive(Context context, Intent intent) switch(getResultCode()case Act

8、ivity.RESULT_OK:Toast.makeText(context, 短信发送成功, Toast.LENGTH_SHORT).show(); break;case SmsManager.RESULT_ERROR_GENERIC_FAILURE:Toast.makeText(context, 2, Toast.LENGTH_SHORT).show();break;case SmsManager.RESULT_ERROR_NO_SERVICE:Toast.makeText(context, 3, Toast.LENGTH_SHORT).show();break;case SmsManag

9、er.RESULT_ERROR_NULL_PDU:Toast.makeText(context, 4, Toast.LENGTH_SHORT).show();break;case SmsManager.RESULT_ERROR_RADIO_OFF:Toast.makeText(context, 5, Toast.LENGTH_SHORT).show();break;, new IntentFilter(SENT);registerReceiver(new BroadcastReceiver()Overridepublic void onReceive(Context context, Inte

10、nt intent)switch(getResultCode()case Activity.RESULT_OK:Toast.makeText(context, 收信人已经成功接收, Toast.LENGTH_SHORT).show();break;case Activity.RESULT_CANCELED:Toast.makeText(context, 收信人未接收成功, Toast.LENGTH_SHORT).show();break; , new IntentFilter(DELIVERED);/* 下面框中代码才为短信发送代码 */String phone_number = phone_

11、number_editText.getText().toString().trim();String sms_content = send_sms_editText.getText().toString().trim();/* 如果未输入号码则会提示 */if(phone_number.equals() Toast.makeText(MainActivity.this, R.string.str_remind_input_phone_number, Toast.LENGTH_SHORT).show(); else /* 获取短信管理器 */ SmsManager smsManager = Sm

12、sManager.getDefault();if(sms_content.length() 70) /* 拆分短信内容(手机短信长度限制,这里限制为 70) */List contents = smsManager.divideMessage(sms_content);for(String sms : contents) /* 发送短信 */smsManager.sendTextMessage(phone_number, null, sms, sentPI, deliveredPI); /* 这个函数就是最终执行短信发送的函数,后面会介绍 */ else /* 短信长度符合限制,直接发送 */

13、smsManager.sendTextMessage(phone_number, null, sms_content, sentPI, deliveredPI);/* 提示发送成功 */Toast.makeText(MainActivity.this, R.string.str_remind_sms_send_finish, Toast.LENGTH_SHORT).show();); Overridepublic boolean onCreateOptionsMenu(Menu menu) / Inflate the menu; this adds items to the action ba

14、r if it is present.getMenuInflater().inflate(R.menu.main, menu);return true;Overridepublic boolean onOptionsItemSelected(MenuItem item) / Handle action bar item clicks here. The action bar will/ automatically handle clicks on the Home/Up button, so long/ as you specify a parent activity in AndroidMa

15、nifest.xml.int id = item.getItemId();if (id = R.id.action_settings) return true;return super.onOptionsItemSelected(item);以上就是全部的代码,这个小 App 可以实现往任意手机号上发短信,而且还会提示短信的发送状态,和短信送达通知。发送函数参数介绍:sendTextMessage(destinationAddress, scAddress, text, sentIntent, deliveryIntent)对应:smsManager.sendTextMessage(phone

16、_number, null, sms_content, sentPI, deliveredPI); destinationAddress 目标电话号码,你想发给谁 scAddress 短信中心号码,测试可以不填 text 短信内容 sentIntent 发送 中国移动 中国移动发送失败 返回发送成功或失败信号 后续处理(即,这个意图包装了短信发送状态的信息,是否发送成功 ) deliveryIntent 发送 中国移动 中国移动发送成功 返回对方是否收到这个信息 后续处理(即:这个意图包装了短信是否被对方收到的状态信息,对方是否成功接收(供应商已经发送成功,但是对方没有收到)最后两个参数 sentIntent, deliveryIntent 就是负责监控短信发送状态的,在此代码中对应的是sentP

展开阅读全文
相关资源
相关搜索

当前位置:首页 > 办公文档 > 解决方案

电脑版 |金锄头文库版权所有
经营许可证:蜀ICP备13022795号 | 川公网安备 51140202000112号