首页
工具
隐私协议
App Privacy Policy
更多
作品
关于我们
Search
1
android5遇到INSTALL_FAILED_DEXOPT 解决办法
1,664 阅读
2
设置max_connections无效
1,484 阅读
3
FlexboxLayout+recyclerView实现自动换行
1,375 阅读
4
Nginx配置多个域名
1,257 阅读
5
Android P http网络请求失败
1,230 阅读
默认分类
mysql
android
android深入
Jetpack Compose
Android传感器
php
Yii2
windows
webrtc
登录
Search
标签搜索
android
kotlin
webrtc
kurento
mysql
adb
nginx
flutter
rsa
微信
git
Yii2
md5
加密
dart
aes
wechat
windows
小程序
dexopt
Typecho
累计撰写
80
篇文章
累计收到
3
条评论
首页
栏目
默认分类
mysql
android
android深入
Jetpack Compose
Android传感器
php
Yii2
windows
webrtc
页面
工具
隐私协议
App Privacy Policy
作品
关于我们
搜索到
52
篇与
android
的结果
2021-03-25
java里的static代码块怎么转成对应的kotlin代码?
JAVA:class Test { static { // 启动时执行的代码 } }Kotlin:companion object { init { // 启动时执行的代码 } }
2021年03月25日
304 阅读
0 评论
0 点赞
2021-03-25
onActivityResult过时了,registerForActivityResult使用方法
最常用的写法registerForActivityResult( ActivityResultContracts.StartActivityForResult() ) { result -> val data = result.data val resultCode= result.resultCode val extra = data?.getStringExtra("extra") }.launch(Intent(this, MainActivity::class.java))除了基本用法,ActivityResultContracts还提供了一些ActivityResultContract的实现类,以便进行其他的操作:RequestMultiplePermissions : 多个权限请求RequestPermission : 单个权限请求TakePicturePreview : 拍照预览TakePicture : 拍照TakeVideo : 摄像PickContact : 选择联系人GetContent : 获取各种文件的UriGetMultipleContents : 获取多个各种文件的UriOpenDocument : 打开文件OpenMultipleDocuments : 打开多个文件OpenDocumentTree : 打开文件夹CreateDocument : 创建文件打开相机拍照:registerForActivityResult(ActivityResultContracts.TakePicturePreview()){ // 返回bitmap }.launch(null)获取单个/多个权限请求: // 单个权限获取 registerForActivityResult(ActivityResultContracts.RequestPermission()) { if (it) {//同意权限 } else {//拒绝权限 } }.launch(Manifest.permission.WRITE_EXTERNAL_STORAGE) // 多个权限获取 var permissions: Array<String> = arrayOf( Manifest.permission.WRITE_EXTERNAL_STORAGE, Manifest.permission.CAMERA ) registerForActivityResult(ActivityResultContracts.RequestMultiplePermissions()) { if (it[Manifest.permission.WRITE_EXTERNAL_STORAGE]!!) {// 同意 } else {// 拒绝 } if (it[Manifest.permission.CAMERA]!!) {// 同意 } else {// 拒绝 } }.launch(permissions)查询联系人信息:registerForActivityResult(ActivityResultContracts.PickContact()){ if(it != null){ val cursor = contentResolver.query(it, null, null, null, null) cursor?.run { if(cursor.moveToFirst()){ val name = cursor.getString(cursor.getColumnIndex(ContactsContract.Contacts.DISPLAY_NAME)) } } } }.launch(null)选取文件:registerForActivityResult(ActivityResultContracts.OpenDocument()){ // 获取的文件uri }.launch(arrayOf("image/*","text/plain"))
2021年03月25日
1,184 阅读
0 评论
0 点赞
2021-02-23
Caused by: java.lang.IllegalStateException: Only fullscreen opaque activities can request orientation
android 8.0 (API=26) 出现的问题解决方法:去掉android:screenOrientation;android:windowIsTranslucent 改为false; 如果需要透明的设置加上android:windowDisablePreview =true;在项目res目录下创建values-v26/styles.xml<?xml version="1.0" encoding="utf-8"?> <resources> <style name="AppTheme.Start" parent="AppTheme"> <item name="android:windowActionBar">false</item> <item name="android:windowNoTitle">true</item> <item name="android:windowFullscreen">true</item> <!-- 适配android手机系统8.0(api26),Only fullscreen opaque activities can request orientation --> <!--用背景图消除启动白屏--> <item name="android:windowBackground">@mipmap/background</item> <item name="android:windowIsTranslucent">false</item> <item name="android:windowDisablePreview">true</item> </style> </resources>
2021年02月23日
522 阅读
0 评论
0 点赞
2021-02-20
Retrofit传参Map<String,Any>报错
在使用retrofit请求接口时报错了,参数:Map<String,Any>Parameter type must not include a type variable or wildcard: java.util.Map<java.lang.String, ?>问题是在值类型为Any,在JAVA里这个值就Object,查在kotlin里就变成*号了,Retrofit不能识别。只需要添加@JvmSuppressWildcards接口即可@JvmSuppressWildcards internal interface WebService { ... }
2021年02月20日
385 阅读
0 评论
0 点赞
2021-01-15
Waiting for another flutter command to release the startup lock
运行flutter devices出现:Waiting for another flutter command to release the startup lock解决方法:1.打开flutter的安装目录/bin/cache/2.删除lockfile文件3.重启AndroidStudio
2021年01月15日
336 阅读
0 评论
0 点赞
2020-12-16
android5遇到INSTALL_FAILED_DEXOPT 解决办法
最近写个项目,在用一台android5.0.2的旧手机测试时出现INSTALL_FAILED_DEXOPT,看图:点击ok后可以看到报错:起初以为是手机内存不足,卸载了多个app后无效,恢复出厂设置也一样无效。在网上找了好几天都无头绪,直到我看到这样一片文章:但我这里并没有用到kotlin协程,于是我移除了kotlin-android-extensions,最还是一样无效,为了方便,重新新建了一个项目。然后一个一个加进去试,最后发现"androidx.room:room-ktx"加入后就出现以上错误,既然找到了错误来源,后面的问题就好解决了。
2020年12月16日
1,664 阅读
3 评论
0 点赞
2020-11-30
Android唤起微信扫一扫
fun scanQR() { try { val intent = context.packageManager.getLaunchIntentForPackage("com.tencent.mm") intent!!.putExtra("LauncherUI.From.Scaner.Shortcut", true) context.startActivity(intent) } catch (e: Exception) { e.printStackTrace() } }
2020年11月30日
286 阅读
0 评论
0 点赞
2020-11-29
反编译微信小程序
一、环境准备node.js有root权限的android手机反编译脚本:wxappUnpacker(github上作者已移除,可搜索其它版本)二、获取小程序包在手机文件夹里找到以下路径(需要root权限):/data/data/com.tencent.mm/MicroMsg/xxxxx(这里是微信用户的某种id)/appbrand/pkg/这里通过查看文件更新时间(在这之前,为了方便寻找对应文件,我先将其它所有微信小程序都移除了)找到你要反编译的小程序,以wxapkg后缀名结尾。通过adb将文件传到电脑上。三、安装反编译依赖先安装nodejsclone wxappUnpacker后,通过命令行进入到该文件夹。安装依赖包npm install esprima npm install css-tree npm install cssbeautify npm install vm2 npm install uglify-es npm install js-beautify npm install escodegen四、开始反编译执行以下命令:node ./wuWxapkg.js ../_xxxxxx_16.wxapkg完成了编译后,提示:最后开发者工具打开项目:注意:该方法仅为学习参考,切勿滥用。
2020年11月29日
280 阅读
0 评论
0 点赞
2020-11-27
EditText光标移到最后
设置editText内容后将光标移动末尾editText.setText(content)//设置EditText控件的内容 editText.setSelection(content.length())//将光标移至文字末尾其它常用方法editText.requestFocus()//获取焦点 editText.clearFocus() //失去焦点 editText.setFocusable(true)//设置视图是否可以获得焦点 editText.setFocusableInTouchMode(true)//设置视图是否在触摸模式下可以获得焦点
2020年11月27日
315 阅读
0 评论
0 点赞
2020-11-27
FlexboxLayout+recyclerView实现自动换行
FlexboxLayout,可以很方便地实现瀑布流的效果。今天正好用到项目中。先看效果图1.添加依赖implementation 'com.google.android:flexbox:2.0.1'2.代码val manager = FlexboxLayoutManager(this) manager.flexDirection = FlexDirection.ROW manager.flexWrap = FlexWrap.WRAP recyclerView.layoutManager = manager val decoration = FlexboxItemDecoration(this) val drawable = GradientDrawable().apply { setSize(DisplayUtils.dip2px(this@SearchActivity, 8f), DisplayUtils.dip2px(this@SearchActivity, 8f)) } decoration.setDrawable(drawable) decoration.setOrientation(FlexboxItemDecoration.BOTH) recyclerView.addItemDecoration(decoration) recyclerView.adapter = adapter在Adapter中填充每一行的剩余空间val params = holder.text1.layoutParams if (params is FlexboxLayoutManager.LayoutParams) { val fbLayoutManager = holder.text1.layoutParams as FlexboxLayoutManager.LayoutParams fbLayoutManager.flexGrow = 1.0f }3.总结FlexboxLayout+RecyclerView可以实现自动换行的效果,不需要指定列数,可以实现自动换行,以上只是一些简单的使用。
2020年11月27日
1,375 阅读
0 评论
0 点赞
1
2
3
4
...
6