Android 之 FileProvider

实现一个拍照上传的功能,在miui机型上会抛出FileUriExposedException异常。检查后发现是Android API有变化。从Android 7.0开始,不再允许在app中把file://Uri暴露给其他app,否则应用会抛出FileUriExposedException。原因在于,Google认为使用file://Uri存在一定的风险。比如,文件是私有的,其他app无法访问该文件,或者其他app没有申请READ_EXTERNAL_STORAGE运行时权限。解决方案是,使用FileProvider生成content://Uri来替代file://Uri。
继续阅读“Android 之 FileProvider”

一次集成aar的经历

公司和某知名支付公司合作,互相交换渠道。对方使用我们的扫码和公众号、服务窗支付。我们使用对方的支付宝APP支付。一切准备工作弄完后开始接入。

对方扔过来的sdk是aar的,当时就傻眼了。以前只用过jar,没用过aar。于是上网恶补了这部分的知识。不禁感叹到,如果aar早些出来,当时就不用那么辛苦手写布局了。
继续阅读“一次集成aar的经历”

Android使用SOAP调用远程服务

SOAP是一种基于XML的协议规范,最近正好使用到了它。在Android中,可以使用KSOAP2来调用WebService。

KSOAP2相关文档:http://simpligility.github.io/ksoap2-android/
KSOAP2下载地址:https://oss.sonatype.org/content/repositories/ksoap2-android-releases/

下载 ksoap2-android-assembly-3.6.0-jar-with-dependencies.jar,将该jar包放入工程的libs目录中。调用步聚如下:
继续阅读“Android使用SOAP调用远程服务”

FragmentManager的使用及管理

Fragment的产生与介绍

Android运行在各种各样的设备中,有小屏幕的手机,超大屏的平板甚至电视。针对屏幕尺寸的差距,很多情况下,都是先针对手机开发一套app,然后拷贝一份,修改布局以适应什么超级大屏的。难道无法做到一个app可以同时适应手机和平板吗?答案是,当然有,那就是Fragment。Fragment出现的初衷就是为了解决这样的问题。
继续阅读“FragmentManager的使用及管理”

MVP架构与MVC架构区别

MVP架构:

MVP就是Model-View-Presenter。

MVP架构
如上图所示可以看见MVP模式需要具备如下三要素:
最左侧的View。也就是Android中的Activity。同时需要创建一个View的抽象接口View interface。需要View实现的接口,View通过View interface与Presenter进行交互,降低耦合。
最右侧的Model。用来操做实际数据(譬如数据存储等)。有时也需要创建一个Model的抽象接口Model interface用来降低耦合。
中间的Presenter。作为View与Model交互的中间纽带,处理与用户交互的负责逻辑。
继续阅读“MVP架构与MVC架构区别”

WebView控件加载银联WAP

2015-06-15 17-26-46 的屏幕截图

今天有个商户在测试环境遇到WebView控件无法加载银联wap的问题。具体他们怎么设置的就不清楚了,说了半天没说通,干脆自己写了个demo丢给他。

WebView加载银联wap只需要注意两个问题:
1.开启WebView控件的JS功能。
2.因为测试环境下的https证书是不受任信的,所以需要做证书信任处理。

核心代码如下:
继续阅读“WebView控件加载银联WAP”