Loading [MathJax]/jax/output/CommonHTML/config.js
前往小程序,Get更优阅读体验!
立即前往
首页
学习
活动
专区
圈层
工具
发布
首页
学习
活动
专区
圈层
工具
社区首页 >专栏 >Android极速开发之SD卡缓存文件

Android极速开发之SD卡缓存文件

作者头像
Javen
发布于 2018-08-21 02:59:04
发布于 2018-08-21 02:59:04
42300
代码可运行
举报
文章被收录于专栏:酷玩时刻酷玩时刻
运行总次数:0
代码可运行
  • 读取某个文件夹中的所有Apk文件路径并打开安装页面
  • 读取某文件夹下的所有apk文件
  • 获取SD卡跟目录中的某个文件
  • 弹出安装界面
  • 卸载apk
代码语言:javascript
代码运行次数:0
运行
AI代码解释
复制
/**
 * 
 * @author Javen
 *
 */
public class SDKUtil {
    private final static String TAG=SDKUtil.class.getSimpleName();
    
    
    /**
     * 读取某个文件夹中的所有Apk文件路径并打开安装页面
     * @param context
     * @param path
     */
     public static void readApkAndStart(Context context,String path){
            List<String> listpath = readAllApkForPath(context, path);
            if (listpath!=null && listpath.size()>0) {
                for (String string : listpath) {
                    SDKUtil.openInstallView(context, string);
                }
            }else {
                L.e("xxxx-----", "readApkAndStart null。。。。。。。");
            }
     }
     /**
     * 读取某文件夹下的所有apk文件
     * @param context
     * @param path
     * @return
     */
    public static List<String> readAllApkForPath(Context context,String path){
        List<String> fileNameList=new ArrayList<String>();
        File dir;
        if (Parameter.isDebug) {
             dir = getSDir(context, path);
        }else {
             dir = getDiskCacheDir(context, path);
        }
        
        if (dir.isDirectory()) {
            File[] files = dir.listFiles();
            for (File file : files) {
                String filePath = file.getAbsolutePath();
                if (filePath.endsWith(".apk")) {
                    fileNameList.add(filePath);
                }
            }
            return fileNameList;
        }
        return null;
    }
    
    
    /**
     * 获取SD卡跟目录中的某个文件
     * @param context
     * @param uniqueName
     * @return
     */
    public static File getSDir(Context context, String uniqueName) {
        boolean externalStorageAvailable = Environment
                .getExternalStorageState().equals(Environment.MEDIA_MOUNTED);
        String path = null;
        if (externalStorageAvailable) {
            path=Environment.getExternalStorageDirectory().getAbsolutePath();
        }
        return new File(path + File.separator + uniqueName);
    }
    
    /**
     * 获取缓存地址
     * @param context
     * @param uniqueName
     * @return
     */
    public static File getDiskCacheDir(Context context, String uniqueName) {
        boolean externalStorageAvailable = Environment
                .getExternalStorageState().equals(Environment.MEDIA_MOUNTED);
        String cachePath;
        if (externalStorageAvailable) {
            cachePath = context.getExternalCacheDir().getPath();
           
        } else {
            cachePath = context.getCacheDir().getPath();
        }
        L.i(TAG, cachePath);
        return new File(cachePath + File.separator + uniqueName);
    }
    
    /**
     * 弹出安装界面
     * @param context 
     * @param pathString apk 路径
     */
    public static void openInstallView(Context context,String pathString){
        //启动安装界面
//      Intent install = new Intent(Intent.ACTION_VIEW);
//      install.setDataAndType(Uri.fromFile(new File(pathString)),
//              "application/vnd.android.package-archive");
//      install.addFlags(Intent.FLAG_ACTIVITY_NEW_TASK);
//      context.startActivity(install);
        ApkController.install(pathString, context);
    }
    /**
     * 卸载apk
     * @param context
     * @param packageName
     */
    public static void uninstallApk(Context context, String packageName) {  
        Uri uri = Uri.parse("package:" + packageName);  
        Intent intent = new Intent(Intent.ACTION_DELETE, uri);  
        context.startActivity(intent);  
    }  
}
本文参与 腾讯云自媒体同步曝光计划,分享自作者个人站点/博客。
原始发表:2016.08.27 ,如有侵权请联系 cloudcommunity@tencent.com 删除

本文分享自 作者个人站点/博客 前往查看

如有侵权,请联系 cloudcommunity@tencent.com 删除。

本文参与 腾讯云自媒体同步曝光计划  ,欢迎热爱写作的你一起参与!

评论
登录后参与评论
暂无评论
推荐阅读
编辑精选文章
换一批
listview异步加载图片并防止错位
android listview 异步加载图片并防止错位 网上找了一张图, listview 异步加载图片之所以错位的根本原因是重用了 convertView 且有异步操作. 如果不重用 conv
xiangzhihong
2018/02/01
9050
listview异步加载图片并防止错位
【专业知识】Android中的磁盘缓存
前言: 在上一篇文章中介绍了内存缓存,内存缓存的优点就是很快,但是它又有缺点: 空间小,内存缓存不可能很大; 内存紧张时可能被清除; 在应用退出时就会消失,做不到离线; 基于以上的缺点有时候又需要另外一种缓存,那就是磁盘缓存。大家应该都用过新闻客户端,很多都有离线功能,功能的实现就是磁盘缓存。 DiskLruCache: 在Android中用到的磁盘缓存大多都是基于DiskLruCache实现的,具体怎么使用呢? 创建一个磁盘缓存对象: public static DiskLruCache open(Fil
程序员互动联盟
2018/03/13
1.1K0
【Android笔记】apk嵌套
主要思想:把b.apk放到assets目录下,由于有大小限制(1M),所以改名成b.mp3(因为mp3,jpg,png,mp4等不会检查,不会限制大小),然后在用的时候再改回来
程序员小何SS
2021/12/13
6140
Android 开发常用接口
android常用接口 常见的一些调用接口 更多阅读全文后star,实时更、更新收集到的接口 dip转px public int convertDipOrPx(int dip) { float scale = MarketApplication.getMarketApplicationContext().getResources().getDisplayMetrics().density; return (int) (dip * scale + 0.5f
用户1263308
2018/02/01
1.8K0
拍照/选择相册,图片压缩旋转处理
最近做项目需要用到拍照和选择相册照片,并显示出来imageview 上,然后压缩上传到服务器中,这本是一个非常常见的功能,但对于图片的处理确实一个技术活,稍微不注意会出现oom,图片压缩也要处理的刚刚好,不能浪费用户的流量,也不能过分的压缩使图片失真,这真的不简单,好在开源中国的安卓端app以开源,本人特意从开源中国整理了这个demo,分享给大家。
方志朋
2022/11/30
7930
一键清理应用数据或者清除应用缓存的方法
导语:最近在做一个一键清理应用缓存的功能,做着做着发现挺有意思,总结了两种方法,供大家参考。 一种是退出应用时,清除应用里的缓存数据。这种方法跟在设置里的应用中去清除数据效果是一样的,非常好用。就是直
非著名程序员
2018/02/08
3.7K0
一键清理应用数据或者清除应用缓存的方法
项目实战工具类(一):PhoneUtil(手机信息相关)
可以使用的功能: 1、获取手机系统版本号 2、获取手机型号 3、获取手机宽度 4、获取手机高度 5、获取手机imei串号 ,GSM手机的 IMEI 和 CDMA手机的 MEID. 6、获取手机sim卡号 7、获取手机号 8、判断sd卡是否挂载 9、获取sd卡剩余空间的大小 10、获取sd卡空间的总大小 11、判断是否是平板 12、判断一个apk是否安装 13、拨打电话 14、打开网页 15、获取应用权限 名称列表 16、获取手机内安装的应用 17、获取手机安装非系统应用 18、获取安装应
听着music睡
2018/06/08
7720
android常用接口(二)
=图片========================== bitmap转Byte数组(微信分享就需要用到) public byte[] bmpToByteArray(final Bitmap bmp, final boolean needRecycle) { ByteArrayOutputStream output = new ByteArrayOutputStream(); bmp.compress(CompressFormat.PNG, 100, output);
用户1263308
2018/02/01
7480
Android WebView选择图片、发送图片
主要代码来自:http://blog.csdn.net/woshinia/article/details/19030437 有删改
yechaoa
2022/06/10
8730
Android 7.0 FileUriExposedException 的处理
前几天把手机系统升级到基于 Android 7.0,后来在升级调试一个应用时抛出如下异常信息:
SkyRiN
2018/11/20
7790
相关推荐
listview异步加载图片并防止错位
更多 >
领券
社区富文本编辑器全新改版!诚邀体验~
全新交互,全新视觉,新增快捷键、悬浮工具栏、高亮块等功能并同时优化现有功能,全面提升创作效率和体验
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档
查看详情【社区公告】 技术创作特训营有奖征文