学习andriod开发之 自己开发短信发送软件

     短信大家都很常用 我们往往在发短信的时候 调用的是系统的发送短信 主要原理是发送一个意图intent( 这个我们以后再说)

 其实我们可以自己写一个短信发送软件 想想是不是有点激动呢 撒 一起来开始吧

 首先 我们来做出短信发送的界面来 我们想想生活中是怎么发送短信的呢 

没错 需要号码和内容和一个按钮就行了 so easy


这就是我们的界面啦 是不是很简洁呢 没错 简洁才能上手快 不是么 

<LinearLayout xmlns:android="http://schemas.android.com/apk/res/android"
    xmlns:tools="http://schemas.android.com/tools"
    android:layout_width="match_parent"
    android:layout_height="match_parent"
    tools:context=".MainActivity" 
    android:orientation="vertical"
    >
	<EditText 
	        android:hint="@string/sendnumber"
	           android:id="@+id/et_tell"
	        android:layout_width="match_parent"
        	  android:layout_height="wrap_content"
	        />
	
	
	<LinearLayout 
	    android:layout_width="match_parent"
	    android:layout_height="wrap_content"
	    android:orientation="vertical"
	    >
	     <TextView
        android:layout_width="wrap_content"
        android:layout_height="wrap_content"
       android:text="@string/sendcontent" />
	    <EditText 
	        android:hint="@string/sendsomething"
	           android:id="@+id/et_content"
	          android:layout_width="match_parent"
        	  android:layout_height="200dp"
        	  android:maxLines="10"
	        />
	</LinearLayout>
   <Button 
       android:id="@+id/bt_send"
       android:layout_width="wrap_content"
       android:layout_height="wrap_content"
       android:text="@string/send"
       />

</LinearLayout>

这里主要采用了做简单的线性布局 你如果之前没有接触过布局的相对知识 就可以看成是一条直线可以了 

那么直线的话 有方向吧 没错 orientation就是我们的方向啦 有垂直和水平 我们按照效果就可以了 

这里面没有什么新的东西 有一个maxLines这个你看意思也知道 是最大行数的意思 知道这些之后 上述布局文件理解起来就不难了

    下面 我们既然完成了界面 肯定要搞定逻辑步骤不是么 

我们看下逻辑步骤的代码

public class MainActivity extends Activity implements OnClickListener {

	private EditText et_tell;
	private EditText et_content;
	private Button bt_send;

	@Override
	protected void onCreate(Bundle savedInstanceState) {
		super.onCreate(savedInstanceState);
		setContentView(R.layout.activity_main);
		findview();
		setListener();
	}

	private void setListener() {
		bt_send.setOnClickListener(this);
		
	}

	private void findview() {
		et_tell = (EditText) findViewById(R.id.et_tell);
		et_content = (EditText) findViewById(R.id.et_content);
		bt_send = (Button) findViewById(R.id.bt_send);
	}

	@Override
	public boolean onCreateOptionsMenu(Menu menu) {
		// Inflate the menu; this adds items to the action bar if it is present.
		getMenuInflater().inflate(R.menu.activity_main, menu);
		return true;
	}

	@Override
	public void onClick(View v) {
		if(v.getId()==R.id.bt_send) {
			String number = et_tell.getText().toString();
			String content = et_content.getText().toString().trim();
			if(number==null||number.equals("")){
				showToast("请输入号码");
				return;
			}
			if(content==null||content.equals("")){
				showToast("请输入发送内容");
				return;
			}
			sendMeesage(number,content);
		}
			
		
	}
	private void showToast(String content) {
		Toast.makeText(this, content, Toast.LENGTH_SHORT).show();
	}

	/**
	 * 发送信息 核心方法
	 * @param number
	 * @param content
	 */
	private void sendMeesage(String number, String content) {
		SmsManager manager = SmsManager.getDefault();
		ArrayList<String> divideMessages = manager.divideMessage(content);
		manager.sendMultipartTextMessage(number, null, divideMessages, null, null);
		showToast("发送成功!");
	}

}

这里我已经写好了一份 代码理解起来很简单 首先你要findview找到控件 其次设置监听 setListener 

再次 就是核心方法 sendMessage了 这里 我们先拿到一个发送短信的管理者 

在andriod系统里 有各种各样的管理者 以后我们会越来越多的接触到 

拿到管理者之后 由于短信一次发送有限制 140字节 也就说是70个汉字 为了防止太多发不出去的情况 

我们用到了sendMutil...方法 这里面 第一个参数是号码 其二是中心号码 这里传入null就可以了 其三就是内容了 

由于短信是拆分了的 所以是按照ArrayList来传的 以下简写AL 传入AL之后 后两个是意图和延时意图 

如果你现在没接触过 你也能明白这两者有什么区别吧 嘿嘿 以后再讲 

之后就发送成功了 

对了! 忘了说 一定要在manifest中加上权限 不然发送肯定失败 

在andriod中有各种各样的权限 你以后就会知道啦 

发送权限的关键代码

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

好了 大功告成! 

下次我们继续 咱一起进步 

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值