Android極速開(kāi)發(fā)之SD卡緩存文件

  • 讀取某個(gè)文件夾中的所有Apk文件路徑并打開(kāi)安裝頁(yè)面
  • 讀取某文件夾下的所有apk文件
  • 獲取SD卡跟目錄中的某個(gè)文件
  • 彈出安裝界面
  • 卸載apk
/**
 * 
 * @author Javen
 *
 */
public class SDKUtil {
    private final static String TAG=SDKUtil.class.getSimpleName();
    
    
    /**
     * 讀取某個(gè)文件夾中的所有Apk文件路徑并打開(kāi)安裝頁(yè)面
     * @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卡跟目錄中的某個(gè)文件
     * @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){
        //啟動(dòng)安裝界面
//      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);  
    }  
}
最后編輯于
?著作權(quán)歸作者所有,轉(zhuǎn)載或內(nèi)容合作請(qǐng)聯(lián)系作者
【社區(qū)內(nèi)容提示】社區(qū)部分內(nèi)容疑似由AI輔助生成,瀏覽時(shí)請(qǐng)結(jié)合常識(shí)與多方信息審慎甄別。
平臺(tái)聲明:文章內(nèi)容(如有圖片或視頻亦包括在內(nèi))由作者上傳并發(fā)布,文章內(nèi)容僅代表作者本人觀點(diǎn),簡(jiǎn)書系信息發(fā)布平臺(tái),僅提供信息存儲(chǔ)服務(wù)。

相關(guān)閱讀更多精彩內(nèi)容

友情鏈接更多精彩內(nèi)容