您的位置:首页 > 移动开发 > Android开发

Android实现发送短信的功能

2016-04-26 15:56 561 查看
手机自带的发送短信的界面自己不喜欢,该怎么办??哈哈,我们可以自己写一个,下面就让我来展示一下如何实现发送短信的功能

首先,我们需要设置一个布局文件,在布局文件中需要一个文本编辑框(用于输入要发送的信息),一个按钮(用于发送),和一个接受联系人信息(为数字类型的小文本编辑框,用于输入接收方的号码)

现在,就然我们开始编写:我们将布局文件贴出

<RelativeLayout 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"
android:paddingBottom="@dimen/activity_vertical_margin"
android:paddingLeft="@dimen/activity_horizontal_margin"
android:paddingRight="@dimen/activity_horizontal_margin"
android:paddingTop="@dimen/activity_vertical_margin"
tools:context="com.wusu.android_002_Message.MainActivity" >

<AutoCompleteTextView
android:id="@+id/editText_receive"
android:layout_width="fill_parent"
android:layout_height="wrap_content"
android:layout_alignParentLeft="true"
android:layout_alignParentTop="true"
android:layout_marginTop="5dp"
android:inputType="number"
android:hint="@string/Input_number_of_receive"
android:ems="10" />

<EditText
android:id="@+id/editText_content"
android:layout_width="fill_parent"
android:layout_height="match_parent"
android:layout_above="@+id/button_send"
android:layout_alignRight="@+id/editText_receive"
android:layout_below="@id/editText_receive"
android:ems="10"
android:layout_marginTop="10dp"
android:hint="@string/Input_content"
android:gravity="top"
android:inputType="textMultiLine" >

<requestFocus />
</EditText>

<Button
android:id="@+id/button_send"
android:layout_width="wrap_content"
android:layout_height="wrap_content"
android:layout_alignParentBottom="true"
android:layout_alignRight="@+id/editText_content"
android:layout_marginBottom="36dp"
android:layout_marginRight="14dp"
android:text="@string/send" />

</RelativeLayout>


这样就完成了布局,我们,然后进入到MainActivity类中,用于实现,具体代码如下所示:

import java.util.ArrayList;

import android.app.Activity;
import android.os.Bundle;
import android.telephony.*;
import android.text.TextUtils;
import android.view.Menu;
import android.view.MenuItem;
import android.view.View;
import android.view.View.OnClickListener;
import android.widget.ArrayAdapter;
import android.widget.AutoCompleteTextView;
import android.widget.Button;
import android.widget.EditText;
import android.widget.TextView;
import android.widget.Toast;

public class MainActivity extends Activity implements OnClickListener {
private Button button_send;
private TextView textView_content,textView_receive;
private AutoCompleteTextView autoCompleteTextView_number;
@Override
protected void onCreate(Bundle savedInstanceState) {
super.onCreate(savedInstanceState);
setContentView(R.layout.activity_main);
button_send=(Button) findViewById(R.id.button_send);
button_send.setOnClickListener(this);
textView_content=(TextView) findViewById(R.id.editText_content);
textView_receive=(TextView) findViewById(R.id.editText_receive);
autoCompleteTextView_number=(AutoCompleteTextView) findViewById(R.id.editText_receive);
ArrayAdapter<String> adapter=new ArrayAdapter<String>(this,android.R.layout.simple_dropdown_item_1line,numbers);
autoCompleteTextView_number.setAdapter(adapter);
}

private String[] numbers={"1008611","10086","1234567890","9876543210","725610987678","226610"};

@Override
public void onClick(View view)
{
switch (view.getId()) {
case R.id.button_send:
String content=textView_content.getText().toString();
String number=textView_receive.getText().toString();
if(TextUtils.isEmpty(number))
{
Toast.makeText(MainActivity.this,"请输入电话号码...", Toast.LENGTH_SHORT).show();
return;
}
else
{
SmsManager smsManager=SmsManager.getDefault();
ArrayList<String> contents=smsManager.divideMessage(content);
for(String str:contents)
{
smsManager.sendTextMessage(number,null, str, null, null);
}
Toast.makeText(this, "已发送", Toast.LENGTH_SHORT).show();
}
break;

default:
break;
}
}
}


在完成上述步骤之后,别以为你就可以发短信了,你还没有权限,同样,打开配置文件,我们进行权限设置:

将如下代码贴到配置文件中

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


现在,已经完成了发送短信的功能,赶紧试试结果吧,就是界面有点。。。,后面继续改善吧
内容来自用户分享和网络整理,不保证内容的准确性,如有侵权内容,可联系管理员处理 点击这里给我发消息
标签: