Android--短信发送

本文将引导您通过新建Android项目来实现短信发送功能,包括创建自定义启动图标、配置启动图标样式、实现四种常见单击事件、布局设计、XML注册事件、使用匿名内部类、内部类实现接口、类本身实现接口,并最终完成短信发送的逻辑。同时,介绍了如何在AndroidManifest.xml中配置广播和权限,以及回调信息的处理。

摘要生成于 C知道 ,由 DeepSeek-R1 满血版支持, 前往体验 >

短信发送项目

了解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);// 当对方接受成功时,回调延期意图)
		}
	}


评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值