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);
}
}
结果展示

Android笔记--发送彩信的更多相关文章
- Android笔记---使用HttpClient发送POST和GET请求
在Android上发送 HTTP 请求的方式一般有两种, HttpURLConnection 和 HttpClient,关于HttpURLConnection的使用方法能够參考HTTP之利用HttpU ...
- Android笔记——Android中数据的存储方式(二)
我们在实际开发中,有的时候需要储存或者备份比较复杂的数据.这些数据的特点是,内容多.结构大,比如短信备份等.我们知道SharedPreferences和Files(文本文件)储存这种数据会非常的没有效 ...
- Android短信彩信收发流程(应用层)
下图为ComposeMessageActivity中confirmSendMessageIfNeeded部分的信息发送流程.主要以接收者有效性的确认为主,然后转向sendMessage方法进行发送. ...
- 深度分析:Android4.3下MMS发送到附件为音频文件(音频为系统内置音频)的彩信给自己,添加音频-发送彩信-接收彩信-下载音频附件-预览-播放(三,接收彩信<2,下载彩信>)
彩信的接收简介: 主要是由应用程序负责从彩信服务中心(MMSC Multimedia Messaging Service Center)下载彩信信息.大致的流程是Frameworks会先发出一条短信, ...
- android之发送短信程序
首先改写activity_main.xml文件 代码如下: <LinearLayout xmlns:android="http://schemas.android.com/apk/re ...
- Android笔记:Socket客户端收发数据
client.xml <LinearLayout xmlns:android="http://schemas.android.com/apk/res/android" and ...
- Android笔记:触摸事件的分析与总结----TouchEvent处理机制
原创作品,允许转载,转载时请务必以超链接形式标明文章 原始出处 .作者信息和本声明.否则将追究法律责任.http://glblong.blog.51cto.com/3058613/1559320 ...
- android 同时发送几条通知
android 同时发送几条通知 ======= 下面是转载的文章. 同时发送几条通知把ID添加,接收的时候找到这个id就可以出来多条了. 还是不太明白或者编码实现不了的可以加我QQ. 博客很少上 ...
- Android 笔记之 R 文件
Android笔记之R文件 h2{ color: #4abcde; } a{ color: blue; text-decoration: none; } a:hover{ color: red; te ...
- Android 笔记之 Android 系统架构
Android笔记之Android系统架构 h2{ color: #4abcde; } a{ color: blue; text-decoration: none; } a:hover{ color: ...
随机推荐
- 整合mybatis实现简单的增删改查
mybatis配置相关代码 配置 <?xml version="1.0" encoding="UTF-8" ?> <!DOCTYPE conf ...
- element的el-table合计显示不出来
在updated中写入 this.$nextTick(() => { this.$refs["printStatisticsTableData"].doLayout(); } ...
- Linux 第三节(重定向符,通配符,管道符,转义符,VIM编辑器)
1.输入重定向符 < 2.输出重定向符 将我们的命令原本要输出到屏幕的内容,输出到文件里面 标准信息 > 覆盖> 追加>> 错误信息 2> 覆盖2> ...
- flutter 使用阿里iconfont图标库
1. 打开Iconnfont,选择自己想要的图标添加到购物车! 2,在右上角点开购物车选择下载代码. 3. 解压下载的代码压缩包,我们可以看到一个iconfont.ttf 4. 在项目根目录下创建一个 ...
- 项目实训 DAY 13
GraphCore学习成本太高/现有资料太少,决定放弃 PlotNN用python语言生成pdf(需求:png),且不能通过仅运行python程序实现,python内生成的是tex格式,还需要加一行命 ...
- [自用初学]c++的构造函数
#include <stdio.h> #include <string.h> class Student { private: int id; char name[32]; p ...
- 基于redis设计的秒杀活动
FlashSale 意为 秒杀,是电子网上商城促销活动的一种形式 本项目依赖redis,使用redis的缓存以及原子操作实现秒杀活动 依赖的包 StackExchange.Redis 该包的作用类似 ...
- 免费Linux RDP,用来练习linux或者Python,还能做成远程桌面
分类:资源| 阅读:1103次阅读 goorm提供了免费的Linux容器,用它来在线练习命令行是非常不错的. 它的注册非常简单:https://ide.goorm.io/ 直接用谷歌账号登录即 ...
- PVE设置硬盘休眠并解决经常唤醒问题
查询硬盘编号: ls -l /dev/disk/by-id/ 查询硬盘状态: smartctl -i -n standby /dev/sda |grep "mode"|awk '{ ...
- CI框架 between and sql语句
1.在文档里没有找到关于where() between and 相应的说明 每次组合查询 要么写原生 要么连续调用where方法. 可用以下方式组合 $condition = array(); $co ...