短信发送项目
了解android新建项目
Application Name:第一应用
Project Name: HelloWorld
Package Name:com.itcast.helloworld
create custom launcher icon 创建一个自定义的启动图标
Configure Launcher Icon
|-----Foreground (Image Clipart Text)
|-----Clipart (choose)
|-----Foreground Scaling:
|-----shape:
|-----background Color:
|------Foreground Color:
Blank Activity
|-----------Activity Name:活动名称
|-----------Layout Name:布局名称
|-----------Navigation Type
Mainfest.xml============================================================================
HelloWorld Mainfest
<application
<activity
<intent-filter
<action
<category
目录解析==========================================================
src java源代码存放目录
gen 自动生成目录
res 资源(resource)目录
libs 支持库目录
assert 资源目录
androidManifest.xml项目清单文件
project.properties项目环境信息,一般是不需要修改此文件
了解Android中常见的四种单击事件
1》在xml中进行注册单机事件
android:onClick="callphone"
callphone为方法名
在类中创建一个callphone方法即可
public class MainActivity extends Activity {
@Override
protected void onCreate(Bundle savedInstanceState) {。。。}
public void onClick(View v) {
System.out.println("本體類實現接口");
}
}
2》创建匿名内部类
1,、找到按钮findViewById
2、btnCallPhone.setOnClickListener(new View.OnClickListener(){});
public class MainActivity extends Activity {
@Override
protected void onCreate(Bundle savedInstanceState) {
super.onCreate(savedInstanceState);//调用父类的创建方法
setContentView(R.layout.activity_main);//设置这个界面的内容布局
Button btnCall=(Button) findViewById(R.id.btnCall);
btnCall.setOnClickListener(new View.OnClickListener() {
@Override
public void onClick(View v) {
System.out.println("view.onClickListener");
}
});
}
}
3》创建实现了OnClickListener的内部类
public class MainActivity extends Activity {
@Override
protected void onCreate(Bundle savedInstanceState) {
super.onCreate(savedInstanceState);//调用父类的创建方法
setContentView(R.layout.activity_main);//设置这个界面的内容布局
Button btnCall=(Button) findViewById(R.id.btnCall);
btnCall.setOnClickListener(new MyOnClick());
}
class MyOnClick implements View.OnClickListener{
@Override
public void onClick(View v) {
System.out.println("myonClick");
}
}
}
4》类本身实现View.OnClickListener
public class MainActivity extends Activity implements View.OnClickListener{
@Override
protected void onCreate(Bundle savedInstanceState) {
super.onCreate(savedInstanceState);//调用父类的创建方法
setContentView(R.layout.activity_main);//设置这个界面的内容布局
Button btnCall=(Button) findViewById(0x7f080001);
btnCall.setOnClickListener(MainActivity.this);
}
@Override
public void onClick(View v) {
System.out.println("本體類實現接口");
}
}
开始制作短信发送
界面layout--->Main.xml
<?xml version="1.0" encoding="utf-8"?>
<RelativeLayout xmlns:android="http://schemas.android.com/apk/res/android"
android:layout_width="match_parent"
android:layout_height="match_parent" >
<EditText
android:id="@+id/et_number"
android:layout_width="fill_parent"
android:layout_height="wrap_content"
android:hint="@string/number"/>
<EditText
android:id="@+id/et_content"
android:layout_width="fill_parent"
android:gravity="top"
android:layout_height="200px"
android:hint="@string/content"
android:layout_below="@+id/et_number"/>
<Button
android:layout_height="wrap_content"
android:layout_width="wrap_content"
android:id="@+id/btn"
android:text="发送"
android:layout_below="@id/et_content"/>
</RelativeLayout>
Activities:
protected void onCreate(Bundle savedInstanceState) {
super.onCreate(savedInstanceState);
setContentView(R.layout.main);// 设置内容布局
etNumber = (EditText) findViewById(R.id.et_number);
etContent = (EditText) findViewById(R.id.et_content);
Button btn = (Button) findViewById(R.id.btn);
btn.setOnClickListener(this);
}
在AndroidManifest.xml下配置广播和权限
<receiver android:name=".ReceiveSmsStateBroadcast" >
<intent-filter>
<!-- 制定接受的广播 -->
<action android:name="com.itcast" />
</intent-filter>
</receiver>
<uses-permission android:name="android.permission.SEND_SMS"/>
回调信息
public class ReceiveSmsStateBroadcast extends BroadcastReceiver {
@Override
public void onReceive(Context context, Intent intent) {
int resultCode = getResultCode();
if (resultCode == Activity.RESULT_OK) {
//发送成功
Toast.makeText(context, "发送成功", 0).show();
}else{
Toast.makeText(context, "发送失败", 0).show();
}
}
}
发送短信消息方法
/**
* 发送短信
* @param number
* @param content
*/
public void sendMessage(String number, String content) {
//短信管理器的對象
SmsManager smsManager = SmsManager.getDefault();
// 把短信分隔一下
ArrayList<String> divideMessage = smsManager.divideMessage(content);
//短信发送到服务器
Intent intent = new Intent("com.itcast");
PendingIntent sentIntent = PendingIntent.getBroadcast(this, 0, intent,
PendingIntent.FLAG_ONE_SHOT);
for (String text : divideMessage) {
smsManager.sendTextMessage(
number,// 目的地号码
null,// 短信中心号码
text,// 短信内容
sentIntent,// 延期意图(发送成功,成功时回调意图)
null);// 当对方接受成功时,回调延期意图)
}
}