Cafeting

一个人的行走范围,就是他的世界。

友盟 Messenger 无法发送消息
umeng Messenger 无法发送消息
umeng Facebook Messenger 无法发送消息


由于项目的登录和分享基于友盟进行的设计,接入 Facebook Messenger 分享,发出去的消息总是提示【无法发送消息 轻触了解详情】

可能的原因有2点:

  1. Messenger 平台从 2019 年 6 月 10 日开始,新应用将不再支持将应用中的链接和媒体分享至 Messenger 的功能,详见 官方公告 ;(此条不成立,文章底部有更新)
  2. 友盟分享 SDK 处理 Messenger 的相关代码比较老旧,新应用使用的话不再被官方接受了,也就不能发送成功。

既然官方都发公告说不支持将应用中的链接和媒体分享至 Messenger 的功能了,那就真的没办法了吗? 经过测试,虽然有些限制,但还是可以直接将应用中的链接分享至 Messenger 的,至于媒体,没有进行单独测试,理论上可行。

阅读全文 »

记录 RecyclerView 滚动位置并恢复是一个很常见的需求,通常需要精准恢复到上次的位置。

预计会用到 RecyclerView 相关的三个知识点:

  1. 监听 RecyclerView 滚动状态
  2. 监听 RecyclerView 完成绘制
  3. 滚动 RecyclerView 到指定的位置

思路:

  • 在「RecyclerView 完成绘制」时,记录首个元素的偏移量作为基础偏移量;此步非必须流程,根据自己实际情况看是否需要,有些情况此基础偏移量为0,即不存在基础偏移量的问题;
  • 在「监听 RecyclerView 滚动状态」里,滚动结束时,记录最左侧的元素坐标和偏移量;
  • 再次打开当前页面时,检查是否存在偏移量信息的记录,有则进行位置恢复,即「滚动 RecyclerView 到指定的位置」。
阅读全文 »

背景

服务端下发的颜色值字符串由于一开始依据 iOS 端的 RGBA 格式,Android 端(Android 使用 ARGB 方式)需要进行兼容,需要对此字符串转换。
举例:RGBA #ABCDEF99 => ARGB #99ABCDEF

扩展:ARGB #99ABCDEF => RGBA #ABCDEF99

即 RGBA 和 ARGB 互转。

阅读全文 »

最近尝试逐步体系化自己的知识管理系统,发现了 Confluence 这个强大的 Wiki 系统,它还提供了移动端 App 进行访问自己的 Confluence,但 App 使用时在填写网站之后遇到了这个错误:

1
2
3
4
5
6
7
Can’t get a secure connection

Either there’s a problem with your site’s certificate, or you need to install the certificate on your device.
-----------------------
Can’t get a secure connection

Either you’re not using HTTPS, there’s a problem with your site’s certificate, or it’s not trusted by this device.

原因比较简单,就是部署的SSL证书或者网站的 SSL 相关配置有问题。参考:Can’t get a secure connection error on Confluence Server mobile app

  • 证书链不完整
  • Apache 或者 Nginx 不支持 TLSv1.2 协议等
阅读全文 »

在使用 AccessibilityService 遍历包含 WebView 的 AccessibilityNodeInfo 时会在某些情况下必现 StackOverflowError 的错误,导致应用崩溃。

0x00 异常

最近使用 Android 的 AccessibilityService 做一些自动化操作时发现,在部分机器上遍历包含 WebView 页面的 AccessibilityNodeInfo 时,某些页面必定会引起 StackOverflowError 错误,经过一番查证,定位到主要与系统所使用的 Android System WebView 版本有关,属于 WebView 的 Bug。

相关说明可以参考 Android: Infinite loop of FrameLayouts in accessibility tree 的讨论。

查看 Android System WebView 版本(以下2种方法任一均可):

  1. 应用程序
    1. 菜单:显示系统应用程序
    2. 点击列表中的:Android System WebView
    3. 详情页内包含版本
  2. 开发者选项
    1. 开启「开发者选项」
    2. 开发者选项 -> WebView 实现
阅读全文 »

博主遇到此问题的原因是 NDK 版本过高(>=18),或者说 Android Studio 版本过低(<3.x),导致不匹配造成的。解决方法是降低 NDK 版本到 17.x 及以下,或者升级 Android Studio 版本到 3.x。

0x00 异常

最近接手同事的一个项目,在我电脑上使用 Android Studio 死活是无法正常加载,同步项目的过程一直报 String index out of range: -1 的异常,且没有任何有用的 Log 打印出来。

阅读全文 »
0%