
kotlin
Crystal_xing
温不增华,寒不改叶
展开
-
Android:Environment.getExternalStorageDirectory 废弃
使用Android SDK 版本超过29编译会发现这个方法被废弃了,解决方案是:context.getExternalFilesDir()-----------比如要把图片保存到手机的指定文件夹下后,扫描更新媒体库,在相册中显示,存储路径的旧写法: //app调用系统相机拍照得到的照片存储的路径: /storage/emulated/0/Pictures/demox_camera private val outputPhotoDirectory: String by lazy原创 2022-02-08 10:57:59 · 4189 阅读 · 0 评论 -
Android:Fragment中物理返回键监听
ar dispatcher: OnBackPressedDispatcher? = nullvar callback: OnBackPressedCallback? = nulldispatcher = requireActivity().onBackPressedDispatchercallback = object : OnBackPressedCallback(true) { override fun handleOnBackPressed() { if (menuI.原创 2021-11-12 10:09:53 · 2797 阅读 · 0 评论 -
Android 讯飞语音识别 —— (WebAPI开启动态修正识别)
官方文档:https://www.xfyun.cn/doc/asr/voicedictation/API.html#%E6%8E%A5%E5%8F%A3%E8%B0%83%E7%94%A8%E6%B5%81%E7%A8%8B 讯飞WebAPI语音听写流式接口,用于1分钟内的即时语音转文字技术,支持实时返回识别结果,达到一边上传音频一边获得识别文本的效果。开启动态修正的好处是能提高识别效果的准确度。 官方网站控制台在线测试的URL:https://www.xfyun.cn/servic...原创 2021-03-04 11:15:00 · 1582 阅读 · 0 评论 -
Firebase Auth 获取token secret
官方文档:https://firebase.google.com/docs/auth/android/twitter-login官方文档这段描述过于模糊,直接getAccessToken(), getSecret(),是点(.)不出来的,需要把AuthResult的AuthCredential对象强转成OAuthCredential, 然后再取得: /** * Firebase Twiter 认证 * * @param context ...原创 2021-02-18 16:51:27 · 1212 阅读 · 0 评论 -
Firebase - Apple Auth 认证登陆心得
官方文档:https://firebase.google.com/docs/auth/android/apple?authuser=2。官方文档的流程已经很清晰的描述了过程,挑一些需要注意的地方补充记录下来:1.苹果ID需要启用了双重身份验证 (2FA) 。双重验证:您的密码和六位数的验证码,这些信息会自动显示在您信任的设备上或发送到您的电话号码。通过输入代码,您正在验证您对新设备的信任参考: https://support.apple.com/en-us/HT204915...原创 2021-02-09 15:11:35 · 1155 阅读 · 1 评论 -
kotlin: Unable to create call adapter for io.reactivex.Observable<
Process: com.change.demox, PID: 20498 java.lang.IllegalArgumentException: Unable to create call adapter for io.reactivex.Observable<com.change.demox.views.banner.component.HomeBean> for method RetrofitService.getFirstHomeData at..原创 2021-01-07 17:00:36 · 766 阅读 · 0 评论 -
Android: getItemOffsets设置outRect边距后,每次切换回画面边距增大的问题
override fun getItemOffsets( outRect: Rect, view: View, parent: RecyclerView, state: RecyclerView.State ) { super.getItemOffsets(outRect, view, parent, state) outRect.set(0, headHeight, 0, 0) } ...原创 2020-09-16 19:52:18 · 1613 阅读 · 0 评论 -
Expected BEGIN_OBJECT but was STRING at line 1 column 1 path $
在Json转换的时候遇到这个错,说明是Json的格式不对,Gson期望你的JSON字符串以大括号开头: {,但是实际上传递给它的字符串是以引号开头。报错的字符串:noanswerhistory_get_rslt:{"res":0,""sq":12345,"history":[{"id":11,"num":"","group":0,"time":"20190531235959"},{"id":92,"num":"","group":0,"time":"201905011200...原创 2020-09-07 14:03:08 · 2052 阅读 · 0 评论 -
Android: 设置Spinner的下拉高度
原生Spinner只提供了dropDownWidth属性设置下拉布局的宽度,却没有dropDownHeight这种高度属性的设置。找到了好用的解决方案:https://stackoverflow.com/questions/20597584/how-to-limit-the-height-of-spinner-drop-down-view-in-android,用反射的方式找到原生Spinner内部封装的下拉popupWindow,然后设置高度:Java版本: Spinner sp...原创 2020-09-02 10:10:12 · 5481 阅读 · 6 评论 -
Android kotlin:json自动生成bean
1. 取得json字符串{ "memo_id": 351, "items": [{ "language": "en", "title": "pdf image test", "content": "pdf再アップ10/23", "file_id": 30, "file_name": "pdf画像テスト.pdf", "file_size": 9088 }, { "language": "en", "title": "pdf image...原创 2020-07-14 10:48:03 · 2229 阅读 · 0 评论 -
Android Navigation: XXXDirections类不能自动生成
app的build文件夹中,不能生成XXXDirections类出现这个情况,检查build.gradle(app)中是否引入:apply plugin: "androidx.navigation.safeargs.kotlin"引入之后:成功生成。原创 2020-06-01 16:34:27 · 1177 阅读 · 0 评论 -
Android:7.0以上机型intent传递Bundle数据太大,退到后台报TransactionTooLargeException
http://www.bejson.com/convert/filesize/看logcat报的字节大小,如果为了精确计算可用上面的网址转换一下,如果bundle传递的数据过大超过了1MB,那么就会报这个异常,因为系统底层进行了传输限制,同样的数据传递在6.0的机型就一切正常不发生崩溃。解决方案:1.bundle intent的传递数据,用Gson转入转出,如果能减小到不发生c...原创 2020-04-09 09:06:42 · 1062 阅读 · 1 评论 -
Kotlin: ZXing生成二维码
1. 引包 implementation "com.google.zxing:core:3.3.2" implementation "com.journeyapps:zxing-android-embedded:3.6.0"2. 调用类QrCodeUtil的封装方法createQRImage ,获得二维码的Bitmap:object QrCodeUtil { ...原创 2020-02-20 09:45:09 · 2876 阅读 · 1 评论 -
kotlin: Fragment中监听物理返回键
官方提供的解决方案:https://developer.android.google.cn/guide/navigation/navigation-custom-back#implement_custom_back_navigation在Fragment中加入如下代码即可: requireActivity().onBackPressedDispatcher.addCallba...原创 2020-02-12 09:09:44 · 1805 阅读 · 0 评论 -
Android Button的背景色无法填满高度
效果和源码如下,能明显发现设置button背景以后,背景色距离上下边缘还有一定的距离,不能填满: <Button android:id="@+id/button_delete" android:layout_width="match_parent" android:layout_heigh...原创 2020-01-10 10:27:38 · 1256 阅读 · 0 评论 -
kotlin: IllegalStateException: Cannot invoke setValue on a background thread
suspend函数中报了如下的异常日志: java.lang.IllegalStateException: Cannot invoke setValue on a background thread at androidx.lifecycle.LiveData.assertMainThread(LiveData.java:461) at androidx....原创 2020-01-02 10:15:46 · 5313 阅读 · 1 评论 -
Android 关于webview点击输入框无法弹出软键盘问题
试了网上诸多属性方面的设置都不好用,在这个网页找到了问题的根本原因:https://www.jianshu.com/p/5f8746eaada9。 根本原因是:自定义WebView的构造函数,用了3参数的创建,而且最后一个参数写了0。 解决方案: 改成双参数的构造就好了:...原创 2019-11-12 11:16:13 · 2943 阅读 · 0 评论 -
Android 批量申请权限(连续申请)
封装了一个关于权限相关和开关的申请Demo,先贴出来视频效果,最开始的时候GPS开关没打开,没有位置权限,没开启蓝牙功能,点击按钮之后先后打开GPS开关,动态申请位置权限,打开GPS开关和蓝牙功能。 贴出核心代码: 1...原创 2019-11-05 13:46:27 · 1475 阅读 · 0 评论 -
kotlin: gson.JsonSyntaxException: java.lang.IllegalStateException
val json = Gson()val jsonContent = json.toJson(sbn.notification.extras)Gson解析的时候,用上述两行代码报如下错误:nullcom.google.gson.JsonSyntaxException: java.lang.IllegalStateException: Expected a string but was...原创 2019-10-28 14:23:20 · 764 阅读 · 0 评论 -
kotlin: Notification的smallIcon
Android5.0以上(LOLLIPOP 5.0)对Notification进行了改进,通知栏上的小图标(smallIcon)不再支持五颜六色的png图像了,仅支持只有alpha通道灰度图。对于换上的图片,系统会处理一层灰色的蒙层效果。如果想设置彩色的notification小图标,必须使用setColor方法。封装了一个测试函数: private fun fakeNo...原创 2019-10-18 09:31:51 · 699 阅读 · 0 评论 -
Kotlin: Projections are not allowed on type arguments of functions and properties (*(星号)引发)
报错代码如下,星号(*)位置: 错误的原因是: kotlin 不让模糊的写类型,需要具体。 改完之后正确的代码,将星号的模糊部分删除,然后下方具体使用的时候加一个强转,转换的参数参考等号左边 val adapter 的类型, 但是<>部分的内容换成删除的星号*:override fun responseBodyCon...原创 2019-07-30 12:00:04 · 820 阅读 · 0 评论 -
kotlin : Default value of annotation parameter must be a compile - time constant
解决方法是在这个标注红线的变量声明定义前,添加constant原创 2019-07-01 11:44:16 · 3542 阅读 · 1 评论 -
Kotlin : The following declarations have the same JVM signature
kotlin报这个错的意思是:父类中已经定义了同名的getToolbar()方法。解决方案是重新命名函数名。原创 2019-07-05 16:28:00 · 7123 阅读 · 0 评论 -
Kotlin : Type mismatch Required Nothing Found X
在转换完的kotlin版本代码中,出现如下错误:Type mismatch Required :Nothing Found :Datajava:Adapter中的写法: ...原创 2019-07-08 11:15:13 · 6463 阅读 · 0 评论 -
Android kotlin 错误:Smart cast to 'Int' is impossible, because 'index' is a mutable property that ...
1. 定义一个变量,如果对它进行赋值操作比如+=,就会报红提示Smart cast to这个错误,代码如下所示:private var index: Int? = 0index += 1 百度之后查得是因为kotlin遵循的安全规则,不允许向列表添加Nullable值,语言太严格了。解决方案是用一个val去中间周转一下: ...原创 2019-04-12 13:31:22 · 7574 阅读 · 0 评论 -
Android Kotlin学习笔记 (1)
2017年谷歌 I/O 全球开发者大会正式宣布,kotlin被列为Android开发的一级语言。由捷克JetBrain公司位于俄罗斯圣彼得堡团队所研发所创。其语法最大的特点是简洁,和java,C++一样都是属于静态语言。运行原理如下图所示,列举java的和kotlin的参照理解: 众所周知,java虚拟机的目的便是跨平...原创 2019-03-13 16:32:38 · 326 阅读 · 0 评论