- 博客(99)
- 资源 (2)
- 问答 (2)
- 收藏
- 关注
原创 AS获取签名文件MD5值
好在可以从右侧的gradle task里面找,又一次令人抓狂地是,task列表在AndroidStudio 4.0以上被隐藏了,FUCK!谷歌攻城狮整天干烂屁股的事!令人抓狂地,使用keytool -list -v -keystore /xxx.jks已经不会再显示MD5了,TM这到底是怎么回事?
2022-08-23 10:18:13
833
1
原创 静态集成腾讯TBS文件浏览能力
一般地,如果没有特殊需求,要使用文件浏览服务只需要调用本文最开始的TBS接口就行了,但是,我们的产品要求不允许调用第三方APP打开,更不允许界面右上角能点击进入分享弹窗。它现在还是免费,但是依据官方文档操作确实有不稳定的问题,内核下发常常很慢,这是不能容忍的。之前我看过里面的内容,大致意思是原来的TBS文件浏览能力不稳定,为了更好地提供定制需求,TBS团队专门剥离了原来的文件浏览能力并进行优化,生成一款新产品,然后我们咨询了一下,价格不菲,于是我们产品经理让我再想想办法。点击进去,咦咦咦,怎么内容没有了。.
2022-08-08 11:13:22
3795
5
原创 android端集成FTP文件下载功能
我使用的是ftp4j的SDK,非常轻巧易用,可以轻松的实现类似文件管理器的功能,但我的项目需求只要求下载,所以就只实现了下载功能。官方地址:http://www.sauronsoftware.it/projects/ftp4j/manual.php文档非常简明易懂:直接贴上我的代码:public class FTPUtils { public interface Callback { void onSuccess(String filePath);
2022-01-15 14:11:54
1635
1
原创 华为OBS SDK在android项目上集成失败的处理
按华为OBS官网指导在android项目gradle文件配置远程仓库,报错了,看了错误日志是log4j什么的需要注解,放弃改变思路到github上下载最新的jar包,下载解压下拿到esdk-obs-java-3.21.4.jar放入项目,编译时又报错了:Program type already present: okhttp3.internal.http.RetryAndFollowUpIntercep原来是项目已经有okhttp3了,和jar包里的冲突解决方法很简单,把jar包当中的okh
2021-12-16 16:58:22
2114
原创 android webview原生与JS交互参数带换行符处理
起个标题就够费劲的,需求是这样:webview里面是自己写的本地html,原生调用js方法时传递字符串,js就把字符串加在html主div(id为editor)的后面,像这样:RE.insertText = function(text) { $("#editor").append("<div style='white-space:pre-wrap'>" + text+ "</div>")}这里解释下pre-wrap:pre-wrap 有多少空白格,显示多少空白格..
2021-08-25 17:17:45
685
原创 Activity中使用kotlin协程的几种写法
一、AppCompatActivity实现CoroutineScope接口:class Test1Activity : AppCompatActivity(), CoroutineScope { private lateinit var job: Job override val coroutineContext: CoroutineContext get() = Dispatchers.Main + job override fun onCreate(sav
2021-03-15 10:38:52
3256
原创 android使用JavaMail开发邮箱APP
JavaMail是大名鼎鼎的Oracle公司开发的电子邮件开发框架,如果使用JAVA语言开发邮箱应用基本都绕不开它。在Android端开发邮箱APP的过程中,我遇到了不少问题并一一解决,这里列举了一些做为备忘录,后续开发差不多了我会把源码全部放在github上,以便一起学习讨论。1、邮箱服务器连接失败2、获取邮件内容乱码3、附件名称乱码4、附件下载速度慢5、邮件正文包含图片时,对图片的处理(重点难点)6、对正文图片和附件的拆分(难点)(可根据Content-ID参数判断)7、对邮
2021-02-26 15:09:35
7797
11
原创 OpenGL ES 三种类型修饰 uniform attribute varying
1.uniform变量uniform变量是外部application程序传递给(vertex和fragment)shader的变量。因此它是application通过函数glUniform**()函数赋值的。在(vertex和fragment)shader程序内部,uniform变量就像是C语言里面的常量(const ),它不能被shader程序修改。(shader只能用,不能改)如果uniform变量在vertex和fragment两者之间声明方式完全一样,则它可以在vertex和fragm
2020-12-17 08:57:10
203
原创 android WebView无法弹出软键盘
原因之一是,自定义了WebView,其中构造函数第三个参数defStyleAttr设为0了,改为默认就可以
2020-11-05 14:35:35
882
原创 android drawable.setAlpha设置无效的解决办法
公司项目有一个需求,图标从网络下载,根据不同的状态设置不同的透明度,于是想当然地这么写:Drawable drawable = imageView.getDrawable();drawable.setAlpha(alpha); 结果有些图标设置成功了,有些失败。调试发现,成功的都是SquaringDrawable,而失败的都是BitmapDrawable。进一步调试发现,SquaringDrawable是Glide框架的,BitmapDrawable是系统的。查找资料得知,Bit
2020-11-02 13:58:50
1976
原创 android对图片进行裁剪,固定框大小
需求:将图片放入固定框中,通过对图片进行缩放和移动,将框内的部分裁剪出来分析:传统的做法大概是这样,调用系统的图片裁剪界面Intent intent = new Intent("com.android.camera.action.CROP"); // 判断版本大于等于7.0 if (Build.VERSION.SDK_INT >= Build.VERSION_CODES.N) { // 给目标应用一个临时授权 i
2020-10-28 14:12:58
2312
原创 android后台持续定位
众所周知,后台不间断定位是非常反人类的事情,不仅侵犯用户隐私,还几乎不可能实现,这类需求最遭程序员痛恨。这不,最近公司就有傻逼领导三番五次要做这个需求,没办法,只好调研一下。最后,总算有所成果。 当然,前提是,可以强制用户使用并要求用户打开相应的权限,否则免谈。所以也就免去了偷偷摸摸什么双进程保活的苦逼事儿,我们做的都是光(tian)明(bu)正(zhi)大(chi)的事。 总共有5个要点: 1、要求用户打开相应权限。包含:同意所有权限,...
2020-09-24 09:18:34
5423
1
原创 android RecyclerView预览效果设置
在布局文件中,可以借助tools命名空间来达到布局预览的效果。它的作用是提供预览,但运行时会自动去掉。最常用的属性大概就是所有类型的View的tools:visible和TextView的tools:text了。RecyclerView如果不加任何设置的话,我们看到的预览效果通常是这样的:非常丑,关键是它并不是我们实际想要做成的效果,不能忍。下面就利用tools来添加好看的效果吧。1、添加tools:xmlns:tools="http://schemas.android.com/tool
2020-08-06 16:05:58
2450
原创 android TextureView有声音没画面&onSurfaceTextureAvailable没调用
如题,这两个问题其实是同一个问题,为什么这么说呢?因为之前获取SurfaceTexture是在onSurfaceTextureAvailable接口里操作的,既然onSurfaceTextureAvailable没回调,获取的SurfaceTexture为空,自然没画面了。在我的项目升级targetSdkVersion到29之后就会出现,我并不清楚onSurfaceTextureAvailab...
2020-04-02 15:38:45
3496
原创 androidstudio升级到3.6出现的鼠标(编辑器)问题
今天升级as到3.6,果不其然,每次升级都要被雷到,这次直接把我整懵逼了:代码编辑不了了,连删除都删不掉,粘贴也不行,鼠标发光是这样子的:一开始以为是按到Insert按钮了,按了Fn+PgDn组合键但又马上不行。原来是AS自动安装了idea vim插件并且默认启用该vim编辑器。通过tools -> Vim Emulator就可以取消了...
2020-03-24 16:41:29
317
1
原创 JAVA字符串json数组使用Formatter格式化成表格形式
需求:一个json数组,要将其解析排成表格的形式,如下:参考这个博客:https://blog.csdn.net/weixin_33778544/article/details/91427507但这个博客没有提供名称太长时自动换行的代码,这里把所有代码贴出:两个bean类:/** * Copyright 2019 bejson.com */package com.qug...
2019-12-13 17:57:13
954
转载 通过adb隐藏和显示导航栏
https://blog.csdn.net/weixin_38553770/article/details/82994380
2019-12-12 16:45:57
10857
原创 android Camera2+TextureView自定义相机开发
前言:系统相机满足不了自定义界面的需求,这时候可以用Camera2和TextureView相结合的方式。参考:Android:Camera2开发详解(上):实现预览、拍照、保存照片等功能这位作者写得已经非常好了,我的DEMO只不过是改了点东西,一个是kotlin语言改成java语言,一个是新增了对拍照后图片角度和大小的处理以及图片的保存,这里稍微讲一下:1、用Camera2拍照,前置摄...
2019-11-20 13:39:50
1500
原创 android动态申请权限2
从高德导航的DEMO拷贝而来,非常简单:import android.Manifest;import android.annotation.TargetApi;import android.content.DialogInterface;import android.content.Intent;import android.content.pm.PackageManager;im...
2019-10-15 10:00:10
210
原创 okhttp3 post请求服务端返回500但postman测试返回正常数据
如题,通过抓包一个一个header比对,替换,测试,终于发现一个postman有而okhttp3没有的默认header,这就是Accept: */*,其他接口访问不需要加这个请求头,但就有一个必须添加,我自己给这个接口加了Accept: */*的header之后,就可以正常访问了。...
2019-10-12 17:20:56
5430
2
原创 LitePal调用save()一直失败
使用郭神的LitePal数据库框架接近3年了,从来没遇到过此问题,排查了一晚上没找到原因,头疼不已。新项目是从旧项目拷贝过来的,旧项目能保存成功,反复检查代码,终于,终于,看到问题所在了,真想扇自己一个大嘴巴:新项目有些业务不需要了,对应的数据表已删除,这里Mark忘记删除了,实际早已不存在,导致litepal初始化就失败了!...
2019-10-05 10:20:01
1628
原创 windows根据端口号结束掉进程
1、打开CMD;2、查找端口号对应进程ID:netstat -ano | findstr 94113、结束进程:taskkill /F /FI "pid eq 6664"这里,6664就是9411对应的进程ID了
2019-08-29 15:58:09
294
原创 android WebView打开本地APP报错net::ERR_UNKNOWN_URL_SCHEME
网上有人说去掉webView.setWebViewClient方法保留webView.setWebChromeClient(new WebChromeClient())就可以,但是又会出现一个问题,当该APP不存在时,又会报出该错误。解决办法是重写webView.setWebViewClient的shouldOverrideUrlLoading方法: @Requir...
2019-08-20 14:57:21
1818
1
原创 docker运行报错:Error response from daemon:Container {containerId} is not running
问题产生: 已启动docker服务systemctl start docker.service,由于本地8080端口之前已经在使用忘记关闭了,在执行docker run -dit --privileged -p21:21 -p80:80 -p8080:8080 -p30000-30010:30000-30010 --name how2jtmall how2j/tmall:late...
2019-08-19 15:23:08
93666
2
原创 CSS布局之浮动float
float:leftfloat:right设置后会把位置让出来;如果本身就在左边,设置float:left,后面同级元素会排在后面效果:默认的div排列是会换行的如果使用float就可以达到水平排列的效果,通常会用在菜单,导航栏等地方如果超出了父容器,还会有自动换行的效果清除float效果,可以用float:left,float:right,float:a...
2019-07-30 09:49:01
173
原创 CSS布局之显示方式display
参考:http://how2j.cn/k/css2/css2-display/767.html#nowhere
2019-07-30 09:13:27
484
原创 springboot部署-jar方式
可参见:http://how2j.cn/k/springboot/springboot-jar/1642.html#简单总结就是:1、为避免不必要的问题,把项目根路径下target里面的文件清空2、进入到项目根路径下,执行mvn install3、待生成jar文件成功后,执行java -jar target/springboot-0.0.1-SNAPSHOT.jar完成。...
2019-07-17 15:19:03
206
原创 android WebView拦截URL请求添加Header及遇到的问题
WebView加载url,如果只需在初始加载的时候添加Header,那么比较简单,只需要这么写即可:Map<String, String> header = new HashMap<>();header.put("headkey", "value");mWebView.loadUrl(url, header);有些情况下,要求每个页面都要做Header验证,那...
2019-07-12 17:56:38
14413
9
原创 Fragment第三方框架推荐(Fragmentation)及简单使用方法
前言:单个Activity+多个fragment的架构可以让应用更加轻便灵活,跳转的UI响应速度更快,但是fragment的坑还是比较多的,这里推荐一个第三方框架Fragmentation,使用起来还是很方便的。不过作者比较懒,怎么用的写的非常简单,剩下的全靠自己去DEMO摸索了。这里记录下,稍微比作者的介绍丰富一些。一、导入implementation 'me.yokeyword:fr...
2019-06-25 11:06:36
23223
4
原创 glide加载https图片
glide默认加载http路径的图片,不做处理https图片是加载不出来的。处理总共分5个步骤:一、import java.security.KeyManagementException;import java.security.NoSuchAlgorithmException;import java.security.SecureRandom;import java.secur...
2019-05-26 11:52:13
3755
原创 android ImageView诡异地被改变大小
有一个布局,是这样的A:点击时总体要变大,外面还有个边框B:于是我选RelativeLayout做为上面A和B的布局,大小不一样都是固定宽高,里面的图片也是固定宽高,A和B都居中于其父布局,父布局也是个RelativeLayout,点击就切换AB两个visible,问题来了,当我切换到B可见时,里面的ImageView被撑大了,超出了蓝色边框,打印出来的信息也显示其宽高被改大了,但...
2019-05-16 09:46:20
1036
原创 Windows如何查看.db数据库文件
从android应用导出的.db文件,想在Windows电脑端看,可以用SQLite Expert Professional这个软件查看,网上说用FireFox的插件sqlite.manager,但我并没有看到这个插件的可视化界面。如图:还是非常直观的。...
2019-05-07 17:13:43
20672
原创 CSS杂记
height: 36px; //高度36pxline-height: 36px; //行高36px,这样文字可以垂直居中,适用于单独一行http://how2j.cn/k/css2/css2-vertical-center/780.htmlwidth:20%;float:left; //两...
2019-04-19 09:10:04
111
原创 android在线播放音频,支持边缓存边播放,支持下载
使用MediaPlayer播放网络音频文件,支持缓存,如上图所示,绿色右边一小段就是已经缓存的,支持下载。具体请见github上我的DEMO:https://github.com/qugengting/AudioOnline...
2019-04-14 22:07:44
4397
转载 .nav ul .mall a:hover是什么意思
它的意思是一个class为nav的元素下的ul标签里面的class为mall的li的超链接文本处于悬停状态时的样式,看这个表述有点复杂,用代码结构解释的话就比较明了了:<div class="nav"> <ul> <li class="mall"><a href="#">我就是这个样式指代的元素</a>&l...
2019-04-08 09:48:53
1862
转载 @SerializedName注解
在Android中解析Gson解析json数据是很方便快捷的,可以直接将json数据解析成java对象或者集合。 Gson解析json的方法我这里就不详细说明了,网上一大把的例子,我这里主要说一下使用@SerializedName进行注解的情况。 使用Gson解析json成对象时默认的是将json里对应字段的值解析到java对象里对应字段的属性里面。然后我们经常会遇到我们自己定义的ja...
2019-04-03 10:52:14
522
android-ffmpeg-amr2wav
2017-08-14
android手指已按下,新生成一个控件怎么监听事件
2022-03-18
android如何关闭MediaRecorder录制视频时的提示音
2019-01-23
TA创建的收藏夹 TA关注的收藏夹
TA关注的人