当前位置: 首页 > news >正文

做网站主流用什么语言企业管理专业主要课程

做网站主流用什么语言,企业管理专业主要课程,网站厨师短期培训班,郑州即将迎来全面解封作者持续关注 WPS二次开发专题系列#xff0c;持续为大家带来更多有价值的WPS开发技术细节#xff0c;如果能够帮助到您#xff0c;请帮忙来个一键三连#xff0c;更多问题请联系我#xff08;QQ:250325397#xff09; 目录 什么是FileUri 在SDK中的使用场景 打开文档时…作者持续关注 WPS二次开发专题系列持续为大家带来更多有价值的WPS开发技术细节如果能够帮助到您请帮忙来个一键三连更多问题请联系我QQ:250325397 目录 什么是FileUri 在SDK中的使用场景 打开文档时候 文档保存/事件时候 第三方应用中使用FileUri 什么是FileUri 若要安全地将应用中的文件提供给其他应用您需要配置应用以内容 URI 的形式提供文件的安全句柄。Android FileProvider 组件会根据您在 XML 中指定的内容生成文件的内容 URI。 详细请参考 WPS二次开发系列如何对打开文档路径FileUri授权 在SDK中的使用场景 打开文档时候 在SDK调用打开文档前需要主要将文件本地路径filePath转换成fileUri详见WPS二次开发系列如何对打开文档路径FileUri授权 文档保存/事件时候 文档保存/关闭事件在SDK的回调接口中均返回了WPS编辑保存后的文档路径(fileUri), 这个FileUri是WPS临时授权给第三方应用使用的FileUri那么该如何在其它第三方应用中使用呢 文档保存/关闭事件 FileApi fileApi WpsSdk.getInstance().getApi(FileApi.class); if (fileApi ! null) {fileApi.addEventListener(SingleOpenActivity.this, ApiEvent.DocumentAfterSave, new EventListener() {Overridepublic void onEvent(String eventName, Bundle bundle) {//注意在高版本Android系统中第三方应用是无法读取WPS私有路径需要通过获取WPS提供的URI来访问文档数据Uri currentFileUri bundle.getParcelable(CurrentFileUri);Log.d(WpsSdk, demo onEvent DocumentAfterSave : s s bundle bundle path path currentFileUricurrentFileUri);}});fileApi.addEventListener(SingleOpenActivity.this, ApiEvent.DocumentAfterClose, new EventListener() {Overridepublic void onEvent(String s, Bundle bundle) {Uri currentFileUri bundle.getParcelable(CurrentFileUri);Log.d(WpsSdk, demo onEvent DocumentAfterClose : s s bundle bundle path path currentFileUri currentFileUri);Utils.showToast(SingleOpenActivity.this, 文档路径 currentFileUri);}});//注意在调用文档打开之前进行注册fileApi.openFile(this, fileUri, bundle); }注意上面示例代码中返回的currentFileUri 就是WPS授权给第三方使用的文件路径 第三方应用中使用FileUri 那么如何在第三方应用中使用curentFileUri呢这里关键是需要通过 InputStream inputStream context.getContentResolver().openInputStream(uri); 来进行读写。 详见Demo使用参考根据SDK返回的currentFileUri路径将文件从WPS沙盒空间拷贝文件到第三方应用自己的私有空间如Android/data/包名/files/output/ 目录下 String outFile FileUtil.copyFileFromUri(MainActivity.this, fileUri, output); 完整拷贝工具类参考示例代码 package cn.wps.sdk.demo.util;import android.content.ContentResolver; import android.content.Context; import android.database.Cursor; import android.net.Uri; import android.provider.MediaStore; import android.text.TextUtils;import java.io.Closeable; import java.io.File; import java.io.FileNotFoundException; import java.io.FileOutputStream; import java.io.IOException; import java.io.InputStream; import java.io.OutputStream; import java.io.RandomAccessFile;public class FileUtil {private static final int IO_BUFFER_SIZE 8192;public static String getFileName(String filePath){if (null filePath)return null;return new File(filePath).getName();}/**** param uri 文件uri* param fileDir 沙盒目录 files/fileDir* return 沙盒路径*/public static String copyFileFromUri(Context context, Uri uri, String fileDir) {File dirFile getFileDir(context, fileDir);String fileName parseFileName(context, uri);String destPath dirFile.getAbsolutePath() File.separator fileName;if (new File(destPath).exists()) {new File(destPath).deleteOnExit();}InputStream inputStream null;try {inputStream context.getContentResolver().openInputStream(uri);} catch (FileNotFoundException e) {throw new RuntimeException(e);}if (copyFile(inputStream, destPath)) {return destPath;}return null;}public static boolean copyFile(InputStream in, String destPath){return copyFile(in, destPath, true);}public static boolean copyFile(InputStream in, String destPath, boolean closeInput){if (in null || destPath null)return false;File outFile new File(destPath);if (!prepareFilePath(outFile))return false;FileOutputStream os null;try{os new FileOutputStream(outFile);copy(in, os);return true;}catch (Exception e){e.printStackTrace();}finally{closeQuietly(os);if (closeInput) closeQuietly(in);}return false;}public static void copy(InputStream in, OutputStream out) throws IOException{copy(in, out, null);}public static void copy(InputStream in, OutputStream out, byte[] buffer) throws IOException{if (null buffer)buffer new byte[IO_BUFFER_SIZE];int read;while ((read in.read(buffer)) ! -1){out.write(buffer, 0, read);}}private static boolean prepareFilePath(File file){File parent file.getParentFile();assert parent ! null;if (parent.exists()) {return true;}return parent.mkdirs();}public static void closeQuietly(FileOutputStream out){if (null out)return;try {out.flush();try {out.getFD().sync(); // bug 314867} catch (Exception ignore) {}out.close();} catch (IOException ignore){}}public static void closeQuietly(Closeable closable){if (null closable)return;try {if (closable instanceof FileOutputStream){FileOutputStream _out (FileOutputStream)closable;_out.flush();try {_out.getFD().sync();} catch (Exception ignore) {}}else if (closable instanceof RandomAccessFile){RandomAccessFile _out (RandomAccessFile)closable;try {_out.getFD().sync();} catch (Exception ignore) {}}closable.close();} catch (IOException ignore){}}private static String parseFileName(Context context, Uri uri) {if (ContentResolver.SCHEME_FILE.equals(uri.getScheme())) {return StringUtil.getNamePart(uri.getPath());}String name queryDisplayName(context, uri);if (!TextUtils.isEmpty(name)) {return name;}name queryOtherColumn(context, uri);if (!TextUtils.isEmpty(name)) {return name;}if (TextUtils.isEmpty(name)) {String urlPath uri.getPath();String namePart StringUtil.getNamePart(urlPath);String extPart StringUtil.pathExtension(urlPath);if (!TextUtils.isEmpty(namePart) !TextUtils.isEmpty(extPart)) {name namePart;}}return name;}private static String queryDisplayName(Context context, Uri uri) {ContentResolver resolver context.getContentResolver();Cursor cur null;String name null;try {cur resolver.query(uri, new String[]{MediaStore.MediaColumns.DISPLAY_NAME}, null, null, null);if (cur ! null cur.getCount() 1 cur.moveToFirst()) {final int displayNameIndex cur.getColumnIndex(MediaStore.MediaColumns.DISPLAY_NAME);if (displayNameIndex ! -1) {String displayName cur.getString(displayNameIndex);if (!TextUtils.isEmpty(displayName)) {String namePart StringUtil.getNamePart(displayName);String ext StringUtil.pathExtension(displayName);if (!TextUtils.isEmpty(namePart) !TextUtils.isEmpty(ext)) {name displayName.trim();}}}}} catch (Exception ignore) {} finally {if (cur ! null) {cur.close();}}return name;}private static String queryOtherColumn(Context context, Uri uri) {ContentResolver resolver context.getContentResolver();Cursor cur null;String name null;try {cur resolver.query(uri, null, null, null, null);if (cur ! null cur.getCount() 1 cur.moveToFirst()) {if (TextUtils.isEmpty(name)) {int fileNameIndex cur.getColumnIndex(file_name);if (fileNameIndex ! -1) {String fileName cur.getString(fileNameIndex);if (!TextUtils.isEmpty(fileName)) {name fileName;}}}if (TextUtils.isEmpty(name)) {int dataIndex cur.getColumnIndex(MediaStore.MediaColumns.DATA);if (dataIndex ! -1) {String dataPath cur.getString(dataIndex);if (!TextUtils.isEmpty(dataPath)) {name new File(dataPath).getName();}}}}} catch (Exception ignore) {} finally {if (cur ! null) {cur.close();}}return name;}public static File getFileDir(Context context, String fileDir) {File file context.getExternalFilesDir(fileDir);if (!file.exists()) {boolean result file.mkdirs();if (!result) {throw new RuntimeException(create file dir fail);}}return file;} }
http://www.hkea.cn/news/14492645/

相关文章:

  • 竞价网网站结构怎么优化
  • wordpress写网站教程南京雨花台区做网站
  • 营销型网站建设方面的书石家庄建设学校
  • 做网站什么主题好做网站是干嘛
  • 大货车找事做下载怎么网站东营网站建设规划书
  • 怎么建设一个外国网站cd-wordpress
  • 长沙网站建设企业黄金网站大全免费
  • 重庆网站建设培训学校目前最好的oa系统
  • 婚宴网站源码营销网站建设文章
  • 青浦php网站开发培训wordpress 解释符号
  • 关于茶网站模板品牌网站品牌理念老旧的后果
  • 博敏 网站开发租用云服务器一年大概的费用
  • dede网站迁移wordpress 翻页重复
  • 怎样做网站导航栏公司简介电子版宣传册模板
  • 商城的网站统计如何做去哪网网站设计风格
  • linux版网站开发做本地信息网站要注册什么类型公司
  • 手机网站要素ppt做的好的网站有哪些内容
  • 西安专业承接网站搭建模板免费做网站的优缺点
  • 做网站的算什么行业男女做爰视频网站
  • 住房城乡建设局网站wordpress 分类 别名
  • html 购物网站营销师
  • 莱芜市城乡建设局网站wordpress邮箱社交
  • 网站策划书 范文免费申请信用卡
  • 常用的网站制作nas无公网wordpress
  • 网站要求怎么注册域名网站
  • 代码家的干货网站跨境电商网站制作
  • 湖北网站排名优化360seo优化
  • 网站提供商创新的手机网站建设
  • 泗洪企业网站建设nginx怎么做多个网站
  • 南京网站开发联系南京乐识产品推广方案范文500字