/* * Copyright (C) 2016 AriaLyy(https://github.com/AriaLyy/Aria) * * Licensed under the Apache License, Version 2.0 (the "License"); * you may not use this file except in compliance with the License. * You may obtain a copy of the License at * * http://www.apache.org/licenses/LICENSE-2.0 * * Unless required by applicable law or agreed to in writing, software * distributed under the License is distributed on an "AS IS" BASIS, * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. * See the License for the specific language governing permissions and * limitations under the License. */ package com.arialyy.simple.util; import android.app.Activity; import android.content.Context; import android.content.Intent; import android.content.SharedPreferences; import android.net.Uri; import android.os.Build; import android.support.v4.content.FileProvider; import android.text.TextUtils; import com.arialyy.aria.util.ALog; import com.arialyy.aria.util.CommonUtil; import com.arialyy.simple.BuildConfig; import java.io.File; import java.io.IOException; public class AppUtil { private static final String TAG = "AppUtil"; private static final String ARIA_SHARE_PRE_KEY = "ARIA_SHARE_PRE_KEY"; /** * http下载示例代码 */ public static File getHelpCode(Context context, String fileName) throws IOException { String path = String.format("%s/code/%s", context.getFilesDir().getPath(), fileName); File ftpCode = new File(path); if (!ftpCode.exists()) { CommonUtil.createFile(path); CommonUtil.createFileFormInputStream(context.getAssets() .open(String.format("help_code/%s", fileName)), path); } return ftpCode; } /** * 读取配置文件字段 * * @param key key * @param defStr 默认字符串 */ public static String getConfigValue(Context context, String key, String defStr) { SharedPreferences preferences = context.getSharedPreferences(ARIA_SHARE_PRE_KEY, Context.MODE_PRIVATE); return preferences.getString(key, defStr); } /** * set配置文件字段 * * @param key key * @param value 需要保存的字符串 */ public static void setConfigValue(Context context, String key, String value) { SharedPreferences preferences = context.getSharedPreferences(ARIA_SHARE_PRE_KEY, Context.MODE_PRIVATE); SharedPreferences.Editor editor = preferences.edit(); editor.putString(key, value); editor.apply(); } /** * 调用系统文件管理器选择文件 * * @param file 不能是文件夹 * @param mineType android 可用的minetype * @param requestCode 请求码 */ public static void chooseFile(Activity activity, File file, String mineType, int requestCode) { if (file.isDirectory()) { ALog.e(TAG, "不能选择文件夹"); return; } Intent intent = new Intent(Intent.ACTION_GET_CONTENT); Uri uri; if (Build.VERSION.SDK_INT >= Build.VERSION_CODES.N) { uri = FileProvider.getUriForFile(activity.getApplicationContext(), BuildConfig.APPLICATION_ID + ".provider", file); } else { uri = Uri.fromFile(file); } intent.setDataAndType(uri, TextUtils.isEmpty(mineType) ? "*/*" : mineType); intent.addCategory(Intent.CATEGORY_OPENABLE); intent.addFlags(Intent.FLAG_GRANT_READ_URI_PERMISSION); activity.startActivityForResult(intent, requestCode); } }