小编wz2*_*z2b的帖子

androidx.appcompat.app.AppCompatActivity 中的 onActivityResult() 在哪里?

AndriodX 活动扩展了 androidx.appcompat.app.AppCompatActivity 但该对象链不包括 onActivityResult( requestCode, resultCode, data)。换句话说,您无法覆盖它,因为它不存在。

如果无法添加侦听器,如何获取 startActivityForResult() 的结果?

implementation 'androidx.appcompat:appcompat:1.0.2'
Run Code Online (Sandbox Code Playgroud)

我很困惑因为

androidx.appcompat.app.AppCompatActivity
Run Code Online (Sandbox Code Playgroud)

延伸

androidx.fragment.app.FragmentActivity
Run Code Online (Sandbox Code Playgroud)

其中包含

protected void onActivityResult(int requestCode, int resultCode, @Nullable 
Run Code Online (Sandbox Code Playgroud)

意图数据){ ... }

我应该能够覆盖它。这是因为我使用的是 Kotlin 吗?

androidx

6
推荐指数
1
解决办法
2405
查看次数

Spring-boot与Apache和AJP对接

有很多文档说明你应该使用各种其他东西(包括简单的代理),但AJP是灵活和快速的,它真的帮助我集成我们的SAML2 SSO,而没有任何webapps不必担心任何这些.

我现在正试图让spring-boot应用程序以相同的方式工作并且有一个非常糟糕的时间.主要症状是"Bad Gateway",错误消息如下:

[error] ajp_get_reply :: jk_ajp_common.c(2126):( boot_worker_1)Tomcat已关闭或拒绝连接.尚未向客户发送任何回复(尚未)

[info] ajp_service :: jk_ajp_common.c(2623):( boot_worker_1)发送请求给tomcat失败(可恢复),因为协议错误(attempt = 1)

[error] ajp_connection_tcp_get_message :: jk_ajp_common.c(1289):错误的消息格式0x4854来自127.0.0.1:8092

最后一个似乎是一个线索,但我一直无法找到它.

春季启动手册似乎表明,如果你只有一个连接,你可以在application.properties中设置它 - 这是我理想的做法,但我还没有找到任何这方面的例子.但是从分发的角度来看,这似乎是理想的 - 发布一个jar,为用户提供一个记录的属性文件.

由于这不起作用,我尝试以这样的方式编程:

@Bean
public EmbeddedServletContainerFactory servletContainer() {
    TomcatEmbeddedServletContainerFactory tomcat = new TomcatEmbeddedServletContainerFactory();
    Connector ajpConnector = new Connector();
    ajpConnector.setProtocol("AJP/1.3");
    ajpConnector.setPort(8092);
    ajpConnector.setSecure(false);
    ajpConnector.setAllowTrace(false);
    ajpConnector.setScheme("http");
    tomcat.addAdditionalTomcatConnectors(ajpConnector);
    return tomcat;
}
Run Code Online (Sandbox Code Playgroud)

(我真的不愿意为本地主机连接配置SSL,因为它只会使事情变得复杂,一旦你花费时间在动物园管理员,卡夫卡等不安全的世界中,你会在一段时间之后放弃并想象你的无论如何,ESB是RFC1918和防火墙.

我的问题是:

1)这一切都可以通过属性文件完成,以及如何完成?

2)使用上面的硬编码配置,我可以telnet到端口8092并发出GET请求...我不知道为什么我可以这样做,因为这些GET是http,我已经将协议配置为AJP/1.3所以我不认为它应该工作.但这是Apache的问题吗?我找不到"错误的消息格式0x4854"或错误"-11"的任何解释.

- 克里斯

spring ajp mod-jk spring-boot

5
推荐指数
1
解决办法
5253
查看次数

为 Firebase 条码解码裁剪 YUV_420_888 图像

我正在使用 Camera2 API 以流式(实时)方式使用 Firebase-ML 条形码解码器。我这样做的方法是设置一个 ImageReader 定期为我提供图像。完整图像是我的相机的分辨率,所以它很大 - 它是一个 12MP 相机。

条码扫描器在 Samsung S7 Edge 上处理图像大约需要 0.41 秒,因此我设置 ImageReaderListener 一次解码一个并丢弃任何后续帧,直到解码器完成。

我使用的图像格式是 YUV_420_888,因为这是文档推荐的,并且因为如果您尝试向 ML Barcode 解码器提供任何其他内容,它会抱怨(调试日志的运行时消息)。

所有这些都有效,但我认为如果我可以裁剪图像,效果会更好。我想让相机分辨率保持不变(以便我可以显示一个宽的 SurfaceView 以帮助用户将他的相机与条形码对齐),但我想给 Firebase 一个裁剪版本(基本上是一个中心矩形)。我所说的“更好地工作”主要是指“更快”,但我也想消除干扰(尤其是可能位于图像边缘的其他条码)。

这让我试图找出裁剪 YUV 图像的最佳方法,但我很惊讶地发现帮助很少。我在网上找到的大多数示例都执行多步骤过程,首先将 YUV 图像转换为 JPEG,然后将 JPEG 渲染为位图,然后对其进行缩放。这在我看来有几个问题

  • 这似乎会对性能产生重大影响(实时)。这将帮助我完成一些事情,包括减少一些功耗、改进响应时间,以及允许我通过 image.close() 更快地将图像返回到 ImageReader。
  • 这种方法不会让您回到 Image,因此您必须改为向 firebase 提供 Bitmap,这似乎也不起作用。我不知道 firebase 在内部在做什么,但我有点怀疑它主要(可能完全)在 Y 平面之外工作,并且如果 Image -> JPEG -> Bitmap 的转换将其弄混了。

我四处寻找可能有帮助的 YUV 库。有一种叫做 libyuv-android 的东西,但它并不能完全按照 firebase-ml 想要的格式工作,而且它是一堆 JNI,让我担心跨平台问题。

我想知道是否还有其他人考虑过这个问题,并提出了一个更好的解决方案来在 Android 中裁剪 YUV_420_488 图像。我是否无法找到它,因为它是一个相对微不足道的操作?除其他事项外,还有步幅和填充需要关注。我不是图像/色彩专家,我有点觉得我不应该自己尝试这个,我特别关心的是我找到了一些在我的设备上有效但在其他人上无效的东西。

更新:这实际上可能没有实际意义。作为一项实验,我查看了从 ImageReader 返回的 Image。它是 ImageReader.SurfaceImage 的一个实例,它是一个私有(对 ImageReader)类。它也有一堆本地搭档。因此,唯一的选择可能是执行压缩/解压缩方法,这似乎很蹩脚。我唯一能想到的另一件事是自己决定只使用 Y 平面并从中制作位图,然后看看 …

firebase android-camera2

5
推荐指数
1
解决办法
793
查看次数

标签 统计

ajp ×1

android-camera2 ×1

androidx ×1

firebase ×1

mod-jk ×1

spring ×1

spring-boot ×1