Android
文章平均质量分 61
Zafir2024
这个作者很懒,什么都没留下…
展开
-
安卓低功耗蓝牙(BLE)客户端无法收到服务器返回消息的解决方法。
因为项目要开发一款BLE的测试工具,写入数据没有问题,但是发现要读取服务器返回消息时,接口返回两种数据,即写入服务器的数据和服务器返回的数据,因为写入服务器数据和返回的数据有可能是一模一样的,所以此时无法分离出服务器的数据。本文主要讲自己遇到的坑,希望能帮助一些人。原创 2023-07-26 11:04:57 · 1861 阅读 · 3 评论 -
安卓使用okhttp3+retrofit2+rxjava实现网络通信
最近做一个安卓应用,实现安卓端从服务器端获取电影列表的功能,于是自己搭建了asp.net服务端并实现安卓代码,之前就用这种方式实现安卓和服务器通信,但是之前后端使用java编写,通过这个应用才知道,okhttp还能和asp.net的服务端通信。本着分享精神和记录作用,本文分享如何使用okhttp3+retroft2+rxjava实现网络通信功能。原创 2023-05-09 14:56:40 · 1262 阅读 · 1 评论 -
安卓使用opengles显示深度点云图或深度3D效果图
因为想在安卓设备上显示深度图的3D效果画面,经过查找资料,发现使用opengles比较方便。本文基于opengles在安卓设备实现3D点云效果图显示,而且深度图上点的颜色由近及远,从红-黄-绿-蓝渐变,有点类似matlab的点云图。......原创 2022-08-12 14:29:30 · 4478 阅读 · 22 评论 -
灰度图raw8转raw16或raw16转raw8方法
raw8转raw16或raw16转raw8方法,废话不多说,直接上代码。原创 2022-07-15 11:15:38 · 2037 阅读 · 0 评论 -
Camera2处理预览回调数据时出现native错误的解决方法
在使用cameraapi 2 时,若是增加了回调数据的监听器,那么需要在OnImageAvailableListener回调函数中从ImageReader获取图像,并转化成我们需要的格式(比如使用自己写的yv12转nv21格式的图像格式转化函数),比如NV21格式。在退出预览界面时,有时候会在图像转化格式函数中出现native错误。原因是相机在释放时,图像转化函数没有执行完成,所以才有native错误。解决方法也不难,就是在图像转化时,不能去释放相机。等图像转化完成后再释放相机。.........原创 2022-07-11 16:42:52 · 5680 阅读 · 0 评论 -
安卓Camera1或Camera2 实现不显示预览只获取回调数据
因为要提供一个相机操作SDK给第三方,要求不需要传控件,只要相机预览回调数据,所以写了两个相机管理类,分别使用camera api 1和 camera api 2实现显示预览图并获取回调数据,或不显示预览图只获取回调数据。代码使用kotlin编写。...原创 2022-06-14 12:00:55 · 2804 阅读 · 0 评论 -
Java实现10位RAW图转16位RAW图数据并转化成Bitmap
前言:安卓应用中,IR相机的预览回调数据(我测试的是散斑图)格式是RAW10,然后转成RAW16,为了显示回调数据到控件,需要将RAW16格式数据转化成bitmap。一、10位raw图数据转16位大端raw数据。 /** * 非安卓标准格式的RAW10转RAW16,补充数据在末尾 * @param src * @param width * @param height * @return 大端格式的raw16数据 */ pub原创 2022-05-31 18:14:20 · 1950 阅读 · 7 评论 -
批处理文件中执行adb命令或adb shell命令
前言:因为要让非开发人员通过adb命令去控制设备,例如复制文件到设备,或者从设备复制文件到电脑,所以需要一个简洁且方便的方式去执行adb命令。本文使用绿色版adb(文章结尾将会贴出下载地址)去执行adb命令,省去了使用者安装adb软件的时间,且将命令写在批处理中,方便使用。以下代码以关闭SELinux为例,要执行成功需要设备有root权限。批处理文件 将adbtool.zip解压后,在adbtool目录下新建bat文件,此处以close_selinux.bat为例,文件中内容如下。...原创 2021-09-06 18:06:45 · 2009 阅读 · 0 评论 -
Windows PC和安卓Socket通信,附完整Demo。
前言:由于要实现将安卓相机的预览数据在PC上处理,所以想到的方法就是通过socket方式进行数据传输,实际测试发现要想高速传输还是有难度,即使用千兆网,目前效果还是不理想。1.5MBshuju原创 2021-06-10 16:12:46 · 2099 阅读 · 0 评论 -
安卓10.0去掉点亮屏幕时,壁纸从黑色到透明的动画,改成从透明到透明。
一、前言由于有个bug,说点亮屏幕时,壁纸会短暂黑屏,当锁屏改为无时,观察发现Launcher界面上的图标已经显示出来,但是后面的壁纸会从黑色到透明(可能动画过程稍慢,让测试人员觉得屏幕黑了一下)。当打开开发者选项,并将Animator时长缩放改成10x时,这时就能明显看到壁纸从黑色到透明的过程。为了去掉这个从黑到透明的过程,经过不懈努力终于找到解决方法。二、修改方法修改文件frameworks/base/packages/SystemUI/src/com/android/systemui/g.原创 2020-08-11 15:42:20 · 566 阅读 · 0 评论 -
将framework.jar API优先于SDK API被调用和识别,支持将多个jar中的api优先级排序。
一、前言 在开发一些和系统有关的功能时,通常需要用到跟系统相关的api,通过引入framework.jar依赖包来实现,但是引入后编译依然报错,提示找不到对应api,或者找到的是SDK中同名的api(系统已经将api重写的情况下),针对这种情况,我们需要将framework.jar中的api优先于sdk中的api调用。framework.jar包所在位置(需要先全编译系统)在\out\target\common\obj\JAVA_LIBRARIES\framework_intermed...原创 2020-07-24 10:23:51 · 614 阅读 · 4 评论 -
安卓9.0设置WIFI静态IP地址。
简单的一个函数实现对wifi设置静态或动态IP地址。一、需要的权限<uses-permission android:name="android.permission.ACCESS_FINE_LOCATION"/><uses-permission android:name="android.permission.ACCESS_WIFI_STATE" /><uses-permission android:name="android.permission.CHANGE_原创 2020-06-16 14:09:26 · 4030 阅读 · 22 评论 -
安卓service启动全屏View或不可点击的1像素大小View。
功能:启动service,默认显示全屏透明的视图,整个屏幕的触摸事件全部可被全屏视图拦截,点击全屏视图后,隐藏全屏视图,显示一个像素大小的视图,屏幕触摸不受影响。1、service中弹窗需要的权限:<uses-permission android:name="android.permission.SYSTEM_ALERT_WINDOW" />2、service类。// package nameimport android.app.Service;import andro原创 2020-05-09 09:55:05 · 739 阅读 · 0 评论 -
安卓修改屏幕超时后,系统不进入休眠的方法。
修改系统行为,让屏幕超时后,不去休眠。frameworks\base\services\core\java\com\android\server\power\PowerManagerService,电源管理类,屏蔽休眠在此方法中修改。关键函数如下@VisibleForTestingvoid setWakefulnessLocked(int wakefulness, int reason)...原创 2020-05-08 17:25:14 · 1260 阅读 · 0 评论 -
安卓支持将屏幕亮度设为0的方法。
前言,本文通过修改framework代码实现,单纯在app上是无法做到的。1、安卓app中通过代码修改屏幕亮度的方法。/** * app中设置亮度函数 * 设置当前系统的亮度值:0~255 * 虽然参数可以为0,但是实际上屏幕还是有一定亮度,实际会设置为10,这个值对应的具体配置文件位置: * frameworks\base\core\res\res\values\config....原创 2020-05-08 17:06:57 · 1337 阅读 · 7 评论 -
安卓修改以太网IP模式为纯IPv4或IPv4 & IPv6兼容模式方法。
本来是想在安卓9.0实现以太网的三种ip模式,纯IPv4/纯IPv6/IPv4 & IPv6兼容模式,但是只通过简单修改framework代码无法实现纯IPv6模式(改成纯IPv6模式后,以太网图标不显示,也无法联网了)。本文主要讲解以太网如何实现纯IPv4和IPv4 & IPv6兼容模式。修改文件目录:\frameworks\opt\net\ethernet\java\com...原创 2020-05-08 16:40:54 · 4614 阅读 · 10 评论 -
安卓相机预览画面切换到后台,再切换前台预览画面卡住问题
前言:相机应用预览界面切换到后台后,通常会释放相机资源,这样其他应用能够及时打开摄像头。我的做法是在Acitivity生命周期的onStart()时打开摄像头,在onStop()释放摄像头资源。这样做存在一个小问题,预览界面切换后台再切前台,此时预览画面卡住。原因:onStop()时,SurfaceView或TextureView没有销毁,所以重新打开摄像头时,view的生命周期不会重新执行,...原创 2020-02-08 22:05:21 · 4629 阅读 · 1 评论 -
安卓自定义Switch样式,简单易懂。
因原生的switch控件样式不符合UI要求,因此决定自定义Switch样式。通过修改switch的track和thumb属性实现,以最小的修改实现自定义switch样式。1、布局中使用<!-- switchMinWidth的值和my_switch_track_off.xml及my_switch_track_off.xml中宽度一致 --><Switch and...原创 2020-01-10 19:20:59 · 1330 阅读 · 0 评论 -
安卓9.0设置以太网静态IP地址
前言:因为项目需要设置安卓9.0系统的以太网静态ip地址,于是网上搜索相关资料。9.0系统以太网设置静态ip有关的,只有Github上有个MTK开发人员的分享,github链接:https://github.com/Dufre/Android-Settings-Ethernet,patch是在系统设置中加上以太网设置,用过后发现设置静态IP可以成功,但是无法连外网,解决方法是将 0001-Ethe...原创 2019-08-14 19:41:37 · 9316 阅读 · 24 评论 -
通过camera CameraCallbacks预览回调数据保存视频
前言:因为camera 1 使用MediaRecorder录制视频时,相机的预览回调函数(onPreviewFrame(byte[] data, Camera camera))就不会执行。使用camera 2 我也遇到同样的问题,虽然有的文章说camera 2没有这样的问题,但是本人没有做到。但是项目需要处理相机预览回调数据,同时录制视频。所以为了让相机预览回调和录制视频同时进行,只能通过将相...原创 2019-05-28 11:32:16 · 2113 阅读 · 15 评论