网站首页 全球最实用的IT互联网站!

人工智能P2P分享Wind搜索发布信息网站地图标签大全

当前位置:诺佳网 > 软件工程 > 移动端开发 > Android开发 >

(原创)【B4A】Intent 获取分享图片的“坑”及解

时间:2025-12-30 09:20

人气:

作者:admin

标签:

导读:一、前言 作为完全自学安卓开发的程序员,虽然开发过不少安卓项目,但是仍觉得好多“坑”啊。可能对于科班出身的安卓程序员来说是司空见惯的吧。 本次就来说一下我在处理Inten...

作为完全自学安卓开发的程序员,虽然开发过不少安卓项目,但是仍觉得好多“坑”啊。可能对于科班出身的安卓程序员来说是司空见惯的吧。

本次就来说一下我在处理Intent获取分享图片的“坑”及解决办法。

相信看完的你,一定会有所收获!

本文地址:https://www.cnblogs.com/lesliexin/p/19419192

按照我桌面开发的理所当然的经验,我很自然而然的写出了以下的代码:
(注:因为这是一个帮助类,所以会同时判断不同的类型)

点击查看代码
If in.HasExtra("android.intent.extra.TEXT")   Then	
'TODO,处理文本
Else If in.HasExtra("android.intent.extra.STREAM") Then
'TODO,处理图片
Else If 

然后运行时就发现永远不会进入第2个If块。

打了下日志如下:

点击查看代码
Bundle[{android.intent.extra.SUBJECT=, android.intent.extra.TEXT=null, org.chromium.chrome.extra.TASK_ID=5, android.intent.extra.STREAM=content://com.android.chrome.FileProvider/images/screenshot/176705590396623703724.png}]

发现问题了吗?虽然我分享的是文件,但是“android.intent.extra.TEXT”也在。

知道了上面的问题,最直接的办法就是在第一个If块加上是否为Null的判断:

点击查看代码
Dim sharedText As String
sharedText = in.GetExtra("android.intent.extra.TEXT")
If sharedText=Null Or sharedText.Length=0 Then
'TODO,取图片判断

我还基于经验,判断了下Length=0。

然后运行代码,仍然无法进入取图片的代码段。

嗯?为啥?

一筹莫展之际,灵机一动,直接判断是不是等于字符串“null”,然后不出意外的,成功了。

点击查看代码
If sharedText=Null Or sharedText.Length=0 Or sharedText="null" Then

啊啊啊啊…… 这是什么搞笑的玩意儿,null竟然不是“空”,而是“null”这个字符串本身。大无语。

本文是一个无语吐槽向的,因为很多桌面开发的经验已经根深蒂固,导致时不时会遇到这种莫名的“坑”。

这应该属于“知见障”了吧,修行还不够啊。

-[END]-

温馨提示:以上内容整理于网络,仅供参考,如果对您有帮助,留下您的阅读感言吧!
相关阅读
本类排行
相关标签
本类推荐

CPU | 内存 | 硬盘 | 显卡 | 显示器 | 主板 | 电源 | 键鼠 | 网站地图

Copyright © 2025-2035 诺佳网 版权所有 备案号:赣ICP备2025066733号
本站资料均来源互联网收集整理,作品版权归作者所有,如果侵犯了您的版权,请跟我们联系。

关注微信