运行"使用DroidPlugin实践应用的插件化"里面demo碰到的问题(附个人解决方案)
2016-04-28 10:49
585 查看
使用DroidPlugin实践应用的插件化这篇文章中作者写的很详细,但是,我在nexus 5,版本6.0.1上使用时,出现了文件路径下文件读取不出来的问题(我的路径下已经有好几个后缀名为.apk的文件了),后来查了不少资料,也对比了github上面360的插件 Qihoo360/DroidPlugin,里面有一段权限判断和请求权限的代码,先附上解决方案,其实完全是Qihoo360/DroidPlugin里面的代码,可能是“使用DroidPlugin实践应用的插件化”的作者忘记判断的缘故,所有造成了上面我所碰到的问题。
StoreFragment类中需要添加和修改的代码如下:
最后,感谢“使用DroidPlugin实践应用的插件化”和“DroidPlugin”作者的热心开源
StoreFragment类中需要添加和修改的代码如下:
// 加载Apk private void loadApks() { if (ActivityCompat.checkSelfPermission(getActivity(), Manifest.permission.READ_EXTERNAL_STORAGE) == PackageManager.PERMISSION_GRANTED) { startLoadInner(); } else { requestPermissions(new String[]{Manifest.permission.READ_EXTERNAL_STORAGE}, 0x1); } }
@Override public void onRequestPermissionsResult(int requestCode, String[] permissions, int[] grantResults) { super.onRequestPermissionsResult(requestCode, permissions, grantResults); if (requestCode == 0x1) { if (permissions != null && permissions.length > 0) { for (int i = 0; i < permissions.length; i++) { String permisson = permissions[i]; int grantResult = grantResults[i]; if (Manifest.permission.READ_EXTERNAL_STORAGE.equals(permisson)) { if (grantResult == PackageManager.PERMISSION_GRANTED) { startLoadInner(); } else { Toast.makeText(getActivity(), "没有授权,无法使用", Toast.LENGTH_SHORT).show(); } } } for (String permisson : permissions) { } } } } private void startLoadInner() { // 异步加载, 防止Apk过多, 影响速度 Observable.just(getApkFromDownload()) .subscribeOn(Schedulers.newThread()) .observeOn(AndroidSchedulers.mainThread()) .subscribe(mStoreAdapter::setApkItems); }
最后,感谢“使用DroidPlugin实践应用的插件化”和“DroidPlugin”作者的热心开源
相关文章推荐
- iOS 启动图片的配置过程
- 通过packgername 启动browser
- 使用索引不一定能提高查询性能
- 上机题-字符串反转
- angular.extend(dst, src)对象拓展
- mybatis3.2.0与mybatis3.3.0传参异常
- Java File类功能扩展
- Java后端WebSocket的Tomcat实现
- vs 调试技巧 1
- Wordpress图片显示模糊的问题
- php常见的几个魔术方法
- php第六讲
- 从架构漫谈九篇文章看软件体系结构
- chm文件打开空白无内容的解决办法
- 最短路
- 在ios系统中查看模拟器和真机中的沙盒目录
- Android源码编译之Nexus5真机编译
- HDU 5600 N bulbs
- 安装数据库注意要点
- SQLSever中的触发器基本语法与作用