Android笔记--发送彩信
发送彩信
界面还是那个界面,图片也实现了从相册进行选择图片,选择完成之后,就会回到界面里面的功能;
下面接着实现发送彩信的完整版;
具体实现如下:
界面代码不再展示,主要着重于后台的代码编写啦!
1、先获取到各个文本输入框以及“发送彩信”按钮的id,用来出发相应的点击事件

2、然后编写button的点击事件

其中运用到一个自定义的函数方法--setMess:

源代码在此:
package com.example.myapplication;
import androidx.activity.result.ActivityResult;
import androidx.activity.result.ActivityResultCallback;
import androidx.activity.result.ActivityResultLauncher;
import androidx.activity.result.contract.ActivityResultContracts;
import androidx.appcompat.app.AppCompatActivity;
import android.content.Intent;
import android.net.Uri;
import android.os.Bundle;
import android.util.Log;
import android.view.View;
import android.widget.Button;
import android.widget.EditText;
import android.widget.ImageView;
public class tiaoPhoto extends AppCompatActivity implements View.OnClickListener {
    private ImageView iv_photo;
    private Button btn_send;
    private EditText et_hao;
    private EditText et_top;
    private EditText et_body;
    private Uri pUri;
    private ActivityResultLauncher<Intent> resultLauncher;
    @Override
    protected void onCreate(Bundle savedInstanceState) {
        super.onCreate(savedInstanceState);
        setContentView(R.layout.activity_tiao_photo);
        //获取到手机号码,标题和内容
        et_hao=findViewById(R.id.et_hao);
        et_top=findViewById(R.id.et_top);
        et_body=findViewById(R.id.et_body);
        iv_photo=findViewById(R.id.iv_photo);
        iv_photo.setOnClickListener(this);//设置点击事件
        //获取到发送彩信的按钮点击事件
        btn_send=findViewById(R.id.btn_send);
        //发送彩信点击事件
        btn_send.setOnClickListener(this);
        //跳转到系统相册,选择图片,并返回
        resultLauncher=registerForActivityResult(new ActivityResultContracts.StartActivityForResult(), new ActivityResultCallback<ActivityResult>() {
            @Override
            public void onActivityResult(ActivityResult result) {
                if(result.getResultCode()==RESULT_OK){
                    Intent intent=result.getData();
                    //获得选中文件的路径对象
                    pUri=intent.getData();
                    if(pUri!=null){
                        iv_photo.setImageURI(pUri);
                        Log.d("ning","pUri"+pUri.toString());
                    }
                }
            }
        });
    }
    @Override
    public void onClick(View view) {
        switch(view.getId()){
            case R.id.iv_photo:
                //跳转到系统相册,选择图片,并返回
                Intent intent=new Intent(Intent.ACTION_GET_CONTENT);
                //确定需要的图片类型
                intent.setType("image/*");
                resultLauncher.launch(intent);//返回之后,跳转到上面的那个方法里面
                break;
            case R.id.btn_send:
                //发送带有图片的彩信
                setMess(et_hao.getText().toString(),
                        et_top.getText().toString(),
                        et_body.getText().toString());
                break;
        }
    }
    //发送带有图片的彩信的函数方法
    private void setMess(String hao, String top, String body) {
        Intent intent=new Intent(Intent.ACTION_SEND);
        intent.addFlags(Intent.FLAG_ACTIVITY_NEW_TASK);
        //允许读取图片的uri的地址
        intent.addFlags(Intent.FLAG_GRANT_READ_URI_PERMISSION);
        //发送彩信号码
        intent.putExtra("address",hao);
        //发送彩信标题
        intent.putExtra("subject",top);
        //发送彩信内容
        intent.putExtra("subject",body);
        //发送图片附件
        intent.putExtra(Intent.EXTRA_STREAM,pUri);
        //指定类型
        intent.setType("image/*");
        //弹出底部弹窗
        startActivity(intent);
    }
}
结果展示

 
                    
                
 
                
            
         
         浙公网安备 33010602011771号
浙公网安备 33010602011771号