精华内容
下载资源
问答
  • Android可以用Html查看器打开txt文件

    千次阅读 2013-10-15 15:59:29
    工作需要,txt要能用Html查看器打开 方法1. txt格式的文件除了做txet/plain格式还做text/html格式上报intent 位置:frameworks/base/media/java/android/media/MediaFile.java static { addFileType("MP3", FILE...
    工作需要,txt要能用Html查看器打开
    
    方法1. txt格式的文件除了做txet/plain格式还做text/html格式上报intent
    位置:frameworks/base/media/java/android/media/MediaFile.java
    static {
            addFileType("MP3", FILE_TYPE_MP3, "audio/mpeg", MtpConstants.FORMAT_MP3);
            addFileType("M4A", FILE_TYPE_M4A, "audio/mp4", MtpConstants.FORMAT_MPEG);
            addFileType("WAV", FILE_TYPE_WAV, "audio/x-wav", MtpConstants.FORMAT_WAV);
            addFileType("AMR", FILE_TYPE_AMR, "audio/amr");
            addFileType("AWB", FILE_TYPE_AWB, "audio/amr-wb");
            //if (isWMAEnabled()) 
    		{
                addFileType("WMA", FILE_TYPE_WMA, "audio/x-ms-wma", MtpConstants.FORMAT_WMA);
            }
            ...
            addFileType("TXT", FILE_TYPE_TEXT, "text/plain", MtpConstants.FORMAT_TEXT);
            addFileType("TXT", FILE_TYPE_TEXT, "text/html", MtpConstants.FORMAT_TEXT);	//add open txt by HtmlViewer
            addFileType("HTM", FILE_TYPE_HTML, "text/html", MtpConstants.FORMAT_HTML);
            addFileType("HTML", FILE_TYPE_HTML, "text/html", MtpConstants.FORMAT_HTML);
            addFileType("PDF", FILE_TYPE_PDF, "application/pdf");
            addFileType("DOC", FILE_TYPE_MS_WORD, "application/msword", MtpConstants.FORMAT_MS_WORD_DOCUMENT);
            ...
    }

    方法2. HtmlViewActivity接收“text/plain”类型的文件
    <activity android:name="HTMLViewerActivity" android:label="HTMLViewer"
                      android:theme="@android:style/Theme.Light" >
                <intent-filter>
                    <category android:name="android.intent.category.DEFAULT" />
                    <action android:name="android.intent.action.VIEW" />
                    <data android:scheme="file" />
                    <data android:scheme="content" /> 
                    <data android:mimeType="text/html"/>
                    <data android:mimeType="text/plain"/>	//增加接受文本文件的类型
                    <data android:mimeType="application/xhtml+xml"/>
                    <data android:mimeType="application/vnd.wap.xhtml+xml"/>
                </intent-filter>
             </activity>

    展开全文
  • 1、进入本地文件(添加文件): Intent intent = new Intent(Intent.ACTION_GET_CONTENT); intent.setType("*/*"); intent.addCategory...//显示文件管理列表 try { startActivityForResult(Intent.create

    1、进入本地文件(添加文件):

    Intent intent = new Intent(Intent.ACTION_GET_CONTENT);
    intent.setType("*/*");
    intent.addCategory(Intent.CATEGORY_OPENABLE);

    //显示文件管理器列表
    try {
    startActivityForResult(Intent.createChooser(intent, "请选择一个要上传的文件"),FILE_SELECT_CODE);
    } catch (android.content.ActivityNotFoundException ex) {
    Toast.makeText(ProposalActivity.this, "请安装文件管理器", Toast.LENGTH_SHORT).show();
    }

    查看不同类型文件:

    Intent intent = new Intent();
    intent.setAction(android.content.Intent.ACTION_VIEW);
    File file = new File(“文件路径”);
    if(“文件类型”.equals("pdf")){
    //使用指定工具打开,参数为工具包名和打开页面的Activity。无改代码时,弹出可打开该文件的工具列表。

    intent.setClassName("com.ebensz.pdf", "com.ebensz.pdf.pdfsign.droid.PdfViewerActivity");
    intent.setDataAndType(Uri.fromFile(file), "application/pdf");
    }else{
    Toast.makeText(FileGridActivity.this, "不支持该文件!", Toast.LENGTH_SHORT).show();
    return;
    }
    startActivity(intent);

    文件对应类型列表:

        //{后缀名,MIME类型} 
                {".3gp",    "video/3gpp"}, 
                {".apk",    "application/vnd.android.package-archive"}, 
                {".asf",    "video/x-ms-asf"}, 
                {".avi",    "video/x-msvideo"}, 
                {".bin",    "application/octet-stream"}, 
                {".bmp",    "image/bmp"}, 
                {".c",  "text/plain"}, 
                {".class",  "application/octet-stream"}, 
                {".conf",   "text/plain"}, 
                {".cpp",    "text/plain"}, 
                {".doc",    "application/msword"}, 
                {".docx",   "application/vnd.openxmlformats-officedocument.wordprocessingml.document"}, 
                {".xls",    "application/vnd.ms-excel"},  
                {".xlsx",   "application/vnd.openxmlformats-officedocument.spreadsheetml.sheet"}, 
                {".exe",    "application/octet-stream"}, 
                {".gif",    "image/gif"}, 
                {".gtar",   "application/x-gtar"}, 
                {".gz", "application/x-gzip"}, 
                {".h",  "text/plain"}, 
                {".htm",    "text/html"}, 
                {".html",   "text/html"}, 
                {".jar",    "application/java-archive"}, 
                {".java",   "text/plain"}, 
                {".jpeg",   "image/jpeg"}, 
                {".jpg",    "image/jpeg"}, 
                {".js", "application/x-javascript"}, 
                {".log",    "text/plain"}, 
                {".m3u",    "audio/x-mpegurl"}, 
                {".m4a",    "audio/mp4a-latm"}, 
                {".m4b",    "audio/mp4a-latm"}, 
                {".m4p",    "audio/mp4a-latm"}, 
                {".m4u",    "video/vnd.mpegurl"}, 
                {".m4v",    "video/x-m4v"},  
                {".mov",    "video/quicktime"}, 
                {".mp2",    "audio/x-mpeg"}, 
                {".mp3",    "audio/x-mpeg"}, 
                {".mp4",    "video/mp4"}, 
                {".mpc",    "application/vnd.mpohun.certificate"},        
                {".mpe",    "video/mpeg"},   
                {".mpeg",   "video/mpeg"},   
                {".mpg",    "video/mpeg"},   
                {".mpg4",   "video/mp4"},    
                {".mpga",   "audio/mpeg"}, 
                {".msg",    "application/vnd.ms-outlook"}, 
                {".ogg",    "audio/ogg"}, 
                {".pdf",    "application/pdf"}, 
                {".png",    "image/png"}, 
                {".pps",    "application/vnd.ms-powerpoint"}, 
                {".ppt",    "application/vnd.ms-powerpoint"}, 
                {".pptx",   "application/vnd.openxmlformats-officedocument.presentationml.presentation"}, 
                {".prop",   "text/plain"}, 
                {".rc", "text/plain"}, 
                {".rmvb",   "audio/x-pn-realaudio"}, 
                {".rtf",    "application/rtf"}, 
                {".sh", "text/plain"}, 
                {".tar",    "application/x-tar"},    
                {".tgz",    "application/x-compressed"},  
                {".txt",    "text/plain"}, 
                {".wav",    "audio/x-wav"}, 
                {".wma",    "audio/x-ms-wma"}, 
                {".wmv",    "audio/x-ms-wmv"}, 
                {".wps",    "application/vnd.ms-works"}, 
                {".xml",    "text/plain"}, 
                {".z",  "application/x-compress"}, 
                {".zip",    "application/x-zip-compressed"}, 
                {"",        "*/*"}  

    展开全文
  • 手机,电脑的蓝牙传送文件

    千次阅读 2019-03-05 00:34:09
    本文介绍蓝牙传送文件手机之间,电脑之间,手机与电脑之间。 现在一般手机和笔记本电脑都带有蓝牙功能,但其功能很多人都不曾使用,我就是这样。蓝牙传送不需要网络,要求低,只要你会使用。我一直想使用这个功能...

    本文介绍蓝牙传送文件,手机之间,电脑之间,手机与电脑之间。

    现在一般手机和笔记本电脑都带有蓝牙功能,但其功能很多人都不曾使用,我就是这样。蓝牙传送不需要网络,要求低,只要你会使用。我一直想使用这个功能,可直到前几天才学会使用。既然学会了,就介绍给大家,也给我做个笔记,否则过些天又不知道使用了。

    一,蓝牙手机

    首先要打开手机的蓝牙功能,平常大家不用蓝牙的时候一般处于关闭状态,需要的时候才开启,这样比较省电不是。

    1. 打开蓝牙

      打开蓝牙于两种方法,一种是通过快捷方式,比如桌面的蓝牙开关等以及状态栏的下拉菜单,还有一种是菜单设置里的蓝牙选项,选择打开蓝牙

    2. 设置蓝牙,配对蓝牙

      在蓝牙界面里按菜单键可以看到设备名称、开关,接受到的文件,已配对的设备,可用设备。不同手机可能不一样,但会有不同的方式显示以上项目。设备名称可以把手机命名为自己喜欢的容易识别的名称 比如“我的手机”“liwenz9i”等。蓝牙开关,打开时,当前可被附近的蓝牙设备发现,此时需要配对的另一台手机也设置好并处于可检测状态就能在可用设备里检测到了.。接收的文件,可以查看你接收到的文件。已配对的设备,列出已配对的设备,你可以取消配对或者设置些共享,点击可以连接,这也包括音响设备。可用设备,列出可用设备,可用设备可以设置为配对设备。

    3. 检测到需要配对的手机后,点击设备名称-选择配对。此时会在两台设备显示蓝牙配对请求界面,核对好秘钥之后选择“配对”就配对好了手机,之后再次使用蓝牙传输文件就不需要再次匹配了。

    4. 使用蓝牙发送文件

      配对好之后就能在两台手机间传输任何可读取的文件了,比如照片、音乐、视频、APK包等等。

      打开文件管理器,选择需要传输的文件-按更多-选择分享就能看到如下的一个菜单,如果有安装其他的设计软件并带有分享功能就能在菜单里看到了。

    5. 点击蓝牙后就跑到蓝牙界面,选择要发送的蓝牙设备,文件就处于传输状态了。此时在接受方手机要选择接受操作才能完成传输操作。如果接收方是电脑必须先设置为蓝牙接收状态,否则发送失败。

    6. 蓝牙手机文件接收:蓝牙手机在被蓝牙发送文件时,在手机状态栏有个下载的状态符号,点击就看到如下信息,询问是否接收文件,选择接受则接收文件。文件位置在本地内部存储->bluetooth。设置蓝牙里的接收文件也可看到。

    二,蓝牙电脑

    手机的蓝牙功能非常的方便,可以省去数据线的麻烦,直接就可相互传输文件。对于蓝牙功能,现在的笔记本电脑上同样拥有,我们也可以像手机一样,让电脑通过蓝牙来传输文件。有很多朋友在使用笔记本的蓝牙时不会用使得蓝牙功能一直搁置没有使用,下面就介绍一下笔记本的蓝牙是如何传输文件的。

    1. 将电脑的蓝牙打开,如果你的电脑有手动的蓝牙开关的话,那么就手动打开,一般都是开机自动启动的。如果你的蓝牙不是开机启动的话,那么就需要到服务里打开,让其开机自动启动。

    2. 将电脑的蓝牙设置里面的允许Bluetooth设备查找的选项勾选。

      这个选项勾选后别的设备才可以搜索到你的电脑,否则是无法连接的。

    3. 在接受文件之前的必要的一步,将蓝牙选项中的接受文件界面打开,否则你是接受不到文件的。打开的方法,右击电脑右下角的蓝牙的图标,选择接收文件。

    4. 电脑蓝牙发送,打开蓝牙,选择发送一个文件,选择你要发送的文件,选择你的目标蓝牙设备,可能手机或电脑。也可以资源管理器,选择好文件,可以多选,右键,Send To(发送),选择蓝牙设备。

    5. 蓝牙电脑接收界面,在你接收到一些文件后,接收文件界面如下,你需要选择文件存放目录,并最后确认Finish,文件才被最后接收。

    特别说明,电脑接收文件必须先打开蓝牙文件接收状态,手机不用,但文件发送后接收方必须确认接受。

     

    展开全文
  • Android打开系统文件管理

    千次阅读 2019-09-29 09:40:51
    通过SAF,用户可以轻松地浏览和打开所有首选文档存储提供商中的文档,图像和其他文件。 一个标准、易于使用的UI允许用户在应用程序和提供程序之间以一致的方式浏览文件并访问最新消息。云或本地存储服务可以通过...

    一、前言

    Android 4.4(API级别19)引入了存储访问框架(SAF)。
    通过SAF,用户可以轻松地浏览和打开所有首选文档存储提供商中的文档,图像和其他文件。
    也就是说,接下来介绍的方式适用于android4.4+的操作系统。
    参考链接:https://developer.android.com/guide/topics/providers/document-provider

    二、详细实现

    1、调出系统文件管理器界面
    private static final int READ_REQUEST_CODE = 42;
    ...
    /**
     * Fires an intent to spin up the "file chooser" UI and select an image.
     */
    public void performFileSearch() {
    
        // ACTION_OPEN_DOCUMENT is the intent to choose a file via the system's file
        // browser.
        Intent intent = new Intent(Intent.ACTION_OPEN_DOCUMENT);
    
        // Filter to only show results that can be "opened", such as a
        // file (as opposed to a list of contacts or timezones)
        intent.addCategory(Intent.CATEGORY_OPENABLE);
    
        // Filter to show only images, using the image MIME data type.
        // If one wanted to search for ogg vorbis files, the type would be "audio/ogg".
        // To search for all documents available via installed storage providers,
        // it would be "*/*".
        intent.setType("image/*");
    
        startActivityForResult(intent, READ_REQUEST_CODE);
    }
    
    1)Intent除了可以设置为ACTION_OPEN_DOCUMEN,还可以替换为ACTION_GET_CONTENT ,两者的区别如下:
    • 如果您希望您的应用仅读取/导入数据,请使用ACTION_GET_CONTENT。 通过这种方法,应用程序可以导入数据的副本,例如图像文件。
    • 如果希望您的应用对文件提供者拥有的文件具有长期,持久的访问权限,请使用ACTION_OPEN_DOCUMENT
    2)Category设置为CATEGORY_OPENABLE,过滤出可以打开的文件
    3)Type设置的是MIMETYPE,比如:
    • 过滤所有图片,则设置为:"image/*"
    • 只过滤png图片,则设置为:"image/png"
    • 过滤apk,那么可设置为:"application/vnd.android.package-archive"
    4)startActivityForResult 启动Inetent,以便在onActivityResult接收文件选择结果
    2、在onActivityResult中处理返回结果
    @Override
    public void onActivityResult(int requestCode, int resultCode,
            Intent resultData) {
    
        // The ACTION_OPEN_DOCUMENT intent was sent with the request code
        // READ_REQUEST_CODE. If the request code seen here doesn't match, it's the
        // response to some other intent, and the code below shouldn't run at all.
    
        if (requestCode == READ_REQUEST_CODE && resultCode == Activity.RESULT_OK) {
            // The document selected by the user won't be returned in the intent.
            // Instead, a URI to that document will be contained in the return intent
            // provided to this method as a parameter.
            // Pull that URI using resultData.getData().
            Uri uri = null;
            if (resultData != null) {
                uri = resultData.getData();
                Log.i(TAG, "Uri: " + uri.toString());
                showImage(uri);
            }
        }
    }
    
    1)从Intent中getData()获取到返回的Uri对象,旧版本是file://开头,新版本是content://开头
    3、从Uri获取所需的信息
    1)从Uri中获取文件元数据,一般只能获取到文件名与大小
    public void dumpImageMetaData(Uri uri) {
    
        // The query, since it only applies to a single document, will only return
        // one row. There's no need to filter, sort, or select fields, since we want
        // all fields for one document.
        Cursor cursor = getActivity().getContentResolver()
                .query(uri, null, null, null, null, null);
    
        try {
        // moveToFirst() returns false if the cursor has 0 rows.  Very handy for
        // "if there's anything to look at, look at it" conditionals.
            if (cursor != null && cursor.moveToFirst()) {
    
                // Note it's called "Display Name".  This is
                // provider-specific, and might not necessarily be the file name.
                String displayName = cursor.getString(
                        cursor.getColumnIndex(OpenableColumns.DISPLAY_NAME));
                Log.i(TAG, "Display Name: " + displayName);
    
                int sizeIndex = cursor.getColumnIndex(OpenableColumns.SIZE);
                // If the size is unknown, the value stored is null.  But since an
                // int can't be null in Java, the behavior is implementation-specific,
                // which is just a fancy term for "unpredictable".  So as
                // a rule, check if it's null before assigning to an int.  This will
                // happen often:  The storage API allows for remote files, whose
                // size might not be locally known.
                String size = null;
                if (!cursor.isNull(sizeIndex)) {
                    // Technically the column stores an int, but cursor.getString()
                    // will do the conversion automatically.
                    size = cursor.getString(sizeIndex);
                } else {
                    size = "Unknown";
                }
                Log.i(TAG, "Size: " + size);
            }
        } finally {
            cursor.close();
        }
    }
    
    2)将Uri转换为Bitmap
    private Bitmap getBitmapFromUri(Uri uri) throws IOException {
        ParcelFileDescriptor parcelFileDescriptor =
                getContentResolver().openFileDescriptor(uri, "r");
        FileDescriptor fileDescriptor = parcelFileDescriptor.getFileDescriptor();
        Bitmap image = BitmapFactory.decodeFileDescriptor(fileDescriptor);
        parcelFileDescriptor.close();
        return image;
    }
    
    3)将Uri转换为InputStream
    private String readTextFromUri(Uri uri) throws IOException {
        StringBuilder stringBuilder = new StringBuilder();
        try (InputStream inputStream =
                getContentResolver().openInputStream(uri);
                BufferedReader reader = new BufferedReader(
                new InputStreamReader(Objects.requireNonNull(inputStream)))) {
            String line;
            while ((line = reader.readLine()) != null) {
                stringBuilder.append(line);
            }
        }
        return stringBuilder.toString();
    }
    
    MIMETYPE 常见的用法:
    文件类型mime名称文件类型mime名称
    3gpvideo/3gpppdbchemical/x-pdb
    aabapplication/x-authoware-binpdfapplication/pdf
    aamapplication/x-authoware-mappfrapplication/font-tdpfr
    aasapplication/x-authoware-segpgmimage/x-portable-graymap
    aiapplication/postscriptpictimage/x-pict
    aifaudio/x-aiffpmapplication/x-perl
    aifcaudio/x-aiffpmdapplication/x-pmd
    aiffaudio/x-aiffpngimage/png
    alsaudio/X-Alpha5pnmimage/x-portable-anymap
    amcapplication/x-mpegpnzimage/png
    aniapplication/octet-streampotapplication/vnd.ms-powerpoint
    apkapplication/vnd.android.package-archiveppmimage/x-portable-pixmap
    asctext/plainppsapplication/vnd.ms-powerpoint
    asdapplication/astoundpptapplication/vnd.ms-powerpoint
    asfvideo/x-ms-asfpqfapplication/x-cprplayer
    asnapplication/astoundpqiapplication/cprplayer
    aspapplication/x-asapprcapplication/x-prc
    asxvideo/x-ms-asfproxyapplication/x-ns-proxy-autoconfig
    auaudio/basicpsapplication/postscript
    avbapplication/octet-streamptlkapplication/listenup
    avivideo/x-msvideopubapplication/x-mspublisher
    awbaudio/amr-wbpvxvideo/x-pv-pvx
    bcpioapplication/x-bcpioqcpaudio/vnd.qcelp
    binapplication/octet-streamqtvideo/quicktime
    bldapplication/bldqtiimage/x-quicktime
    bld2application/bld2qtifimage/x-quicktime
    bmpimage/bmpr3ttext/vnd.rn-realtext3d
    bpkapplication/octet-streamraaudio/x-pn-realaudio
    bz2application/x-bzip2ramaudio/x-pn-realaudio
    calimage/x-calsrarapplication/x-rar-compressed
    ccnapplication/x-cncrasimage/x-cmu-raster
    ccoapplication/x-cocoardfapplication/rdf+xml
    cdfapplication/x-netcdfrfimage/vnd.rn-realflash
    cgimagnus-internal/cgirgbimage/x-rgb
    chatapplication/x-chatrlfapplication/x-richlink
    classapplication/octet-streamrmaudio/x-pn-realaudio
    clpapplication/x-mscliprmfaudio/x-rmf
    cmxapplication/x-cmxrmmaudio/x-pn-realaudio
    coapplication/x-cult3d-objectrmvbaudio/x-pn-realaudio
    codimage/cis-codrnxapplication/vnd.rn-realplayer
    cpioapplication/x-cpioroffapplication/x-troff
    cptapplication/mac-compactprorpimage/vnd.rn-realpix
    crdapplication/x-mscardfilerpmaudio/x-pn-realaudio-plugin
    cshapplication/x-cshrttext/vnd.rn-realtext
    csmchemical/x-csmlrtex-lml/x-gps
    csmlchemical/x-csmlrtfapplication/rtf
    csstext/cssrtgapplication/metastream
    curapplication/octet-streamrtxtext/richtext
    dcmx-lml/x-evmrvvideo/vnd.rn-realvideo
    dcrapplication/x-directorrwcapplication/x-rogerwilco
    dcximage/x-dcxs3maudio/x-mod
    dhtmltext/htmls3zaudio/x-mod
    dirapplication/x-directorscaapplication/x-supercard
    dllapplication/octet-streamscdapplication/x-msschedule
    dmgapplication/octet-streamsdfapplication/e-score
    dmsapplication/octet-streamseaapplication/x-stuffit
    docapplication/mswordsgmtext/x-sgml
    dotapplication/x-dotsgmltext/x-sgml
    dviapplication/x-dvishapplication/x-sh
    dwfdrawing/x-dwfsharapplication/x-shar
    dwgapplication/x-autocadshtmlmagnus-internal/parsed-html
    dxfapplication/x-autocadshwapplication/presentations
    dxrapplication/x-directorsi6image/si6
    ebkapplication/x-expandedbooksi7image/vnd.stiwap.sis
    embchemical/x-embl-dl-nucleotidesi9image/vnd.lgtwap.sis
    emblchemical/x-embl-dl-nucleotidesisapplication/vnd.symbian.install
    epsapplication/postscriptsitapplication/x-stuffit
    eriimage/x-eriskdapplication/x-Koan
    esaudio/echospeechskmapplication/x-Koan
    eslaudio/echospeechskpapplication/x-Koan
    etcapplication/x-earthtimesktapplication/x-Koan
    etxtext/x-setextslcapplication/x-salsa
    evmx-lml/x-evmsmdaudio/x-smd
    evyapplication/x-envoysmiapplication/smil
    exeapplication/octet-streamsmilapplication/smil
    fh4image/x-freehandsmpapplication/studiom
    fh5image/x-freehandsmzaudio/x-smd
    fhcimage/x-freehandsndaudio/basic
    fifimage/fifspctext/x-speech
    fmapplication/x-makersplapplication/futuresplash
    fpximage/x-fpxsprapplication/x-sprite
    fvivideo/isivideospriteapplication/x-sprite
    gauchemical/x-gaussian-inputsptapplication/x-spt
    gcaapplication/x-gca-compressedsrcapplication/x-wais-source
    gdbx-lml/x-gdbstkapplication/hyperstudio
    gifimage/gifstmaudio/x-mod
    gpsapplication/x-gpssv4cpioapplication/x-sv4cpio
    gtarapplication/x-gtarsv4crcapplication/x-sv4crc
    gzapplication/x-gzipsvfimage/vnd
    hdfapplication/x-hdfsvgimage/svg-xml
    hdmtext/x-hdmlsvhimage/svh
    hdmltext/x-hdmlsvrx-world/x-svr
    hlpapplication/winhlpswfapplication/x-shockwave-flash
    hqxapplication/mac-binhex40swflapplication/x-shockwave-flash
    htmtext/htmltapplication/x-troff
    htmltext/htmltadapplication/octet-stream
    htstext/htmltalktext/x-speech
    icex-conference/x-cooltalktarapplication/x-tar
    icoapplication/octet-streamtazapplication/x-tar
    iefimage/ieftbpapplication/x-timbuktu
    ifmimage/giftbtapplication/x-timbuktu
    ifsimage/ifstclapplication/x-tcl
    imyaudio/melodytexapplication/x-tex
    insapplication/x-NET-Installtexiapplication/x-texinfo
    ipsapplication/x-ipscripttexinfoapplication/x-texinfo
    ipxapplication/x-ipixtgzapplication/x-tar
    itaudio/x-modthmapplication/vnd.eri.thm
    itzaudio/x-modtifimage/tiff
    ivri-world/i-vrmltiffimage/tiff
    j2kimage/j2ktkiapplication/x-tkined
    jadtext/vnd.sun.j2me.app-descriptortkinedapplication/x-tkined
    jamapplication/x-jamtocapplication/toc
    jarapplication/java-archivetoyimage/toy
    jnlpapplication/x-java-jnlp-filetrapplication/x-troff
    jpeimage/jpegtrkx-lml/x-gps
    jpegimage/jpegtrmapplication/x-msterminal
    jpgimage/jpegtsiaudio/tsplayer
    jpzimage/jpegtspapplication/dsptype
    jsapplication/x-javascripttsvtext/tab-separated-values
    jwcapplication/jwctsvtext/tab-separated-values
    kjxapplication/x-kjxttfapplication/octet-stream
    lakx-lml/x-lakttzapplication/t-time
    latexapplication/x-latextxttext/plain
    lccapplication/fastmanultaudio/x-mod
    lclapplication/x-digitallocaustarapplication/x-ustar
    lcrapplication/x-digitallocauuapplication/x-uuencode
    lghapplication/lghuueapplication/x-uuencode
    lhaapplication/octet-streamvcdapplication/x-cdlink
    lmlx-lml/x-lmlvcftext/x-vcard
    lmlpackx-lml/x-lmlpackvdovideo/vdo
    lsfvideo/x-ms-asfvibaudio/vib
    lsxvideo/x-ms-asfvivvideo/vivo
    lzhapplication/x-lzhvivovideo/vivo
    m13application/x-msmediaviewvmdapplication/vocaltec-media-desc
    m14application/x-msmediaviewvmfapplication/vocaltec-media-file
    m15audio/x-modvmiapplication/x-dreamcast-vms-info
    m3uaudio/x-mpegurlvmsapplication/x-dreamcast-vms
    m3urlaudio/x-mpegurlvoxaudio/voxware
    ma1audio/ma1vqeaudio/x-twinvq-plugin
    ma2audio/ma2vqfaudio/x-twinvq
    ma3audio/ma3vqlaudio/x-twinvq
    ma5audio/ma5vrex-world/x-vream
    manapplication/x-troff-manvrmlx-world/x-vrml
    mapmagnus-internal/imagemapvrtx-world/x-vrt
    mbdapplication/mbedletvrwx-world/x-vream
    mctapplication/x-mascotvtsworkbook/formulaone
    mdbapplication/x-msaccesswavaudio/x-wav
    mdzaudio/x-modwaxaudio/x-ms-wax
    meapplication/x-troff-mewbmpimage/vnd.wap.wbmp
    meltext/x-vmelwebapplication/vnd.xara
    miapplication/x-mifwiimage/wavelet
    midaudio/midiwisapplication/x-InstallShield
    midiaudio/midiwmvideo/x-ms-wm
    mifapplication/x-mifwmaaudio/x-ms-wma
    milimage/x-calswmdapplication/x-ms-wmd
    mioaudio/x-miowmfapplication/x-msmetafile
    mmfapplication/x-skt-lbswmltext/vnd.wap.wml
    mngvideo/x-mngwmlcapplication/vnd.wap.wmlc
    mnyapplication/x-msmoneywmlstext/vnd.wap.wmlscript
    mocapplication/x-mochawmlscapplication/vnd.wap.wmlscriptc
    mochaapplication/x-mochawmlscripttext/vnd.wap.wmlscript
    modaudio/x-modwmvaudio/x-ms-wmv
    mofapplication/x-yumekarawmxvideo/x-ms-wmx
    molchemical/x-mdl-molfilewmzapplication/x-ms-wmz
    mopchemical/x-mopac-inputwpngimage/x-up-wpng
    movvideo/quicktimewptx-lml/x-gps
    movievideo/x-sgi-moviewriapplication/x-mswrite
    mp2audio/x-mpegwrlx-world/x-vrml
    mp3audio/x-mpegwrzx-world/x-vrml
    mp4video/mp4wstext/vnd.wap.wmlscript
    mpcapplication/vnd.mpohun.certificatewscapplication/vnd.wap.wmlscriptc
    mpevideo/mpegwvvideo/wavelet
    mpegvideo/mpegwvxvideo/x-ms-wvx
    mpgvideo/mpegwxlapplication/x-wxl
    mpg4video/mp4x-gzipapplication/x-gzip
    mpgaaudio/mpegxarapplication/vnd.xara
    mpnapplication/vnd.mophun.applicationxbmimage/x-xbitmap
    mppapplication/vnd.ms-projectxdmapplication/x-xdma
    mpsapplication/x-mapserverxdmaapplication/x-xdma
    mrltext/x-mrmlxdwapplication/vnd.fujixerox.docuworks
    mrmapplication/x-mrmxhtapplication/xhtml+xml
    msapplication/x-troff-msxhtmapplication/xhtml+xml
    mtsapplication/metastreamxhtmlapplication/xhtml+xml
    mtxapplication/metastreamxlaapplication/vnd.ms-excel
    mtzapplication/metastreamxlcapplication/vnd.ms-excel
    mzvapplication/metastreamxllapplication/x-excel
    narapplication/zipxlmapplication/vnd.ms-excel
    nbmpimage/nbmpxlsapplication/vnd.ms-excel
    ncapplication/x-netcdfxltapplication/vnd.ms-excel
    ndbx-lml/x-ndbxlwapplication/vnd.ms-excel
    ndwnapplication/ndwnxmaudio/x-mod
    nifapplication/x-nifxmltext/xml
    nmzapplication/x-screamxmzaudio/x-mod
    nokia-op-logoimage/vnd.nok-oplogo-colorxpiapplication/x-xpinstall
    npxapplication/x-netfpxxpmimage/x-xpixmap
    nsndaudio/nsndxsittext/xml
    nvaapplication/x-neva1xsltext/xml
    odaapplication/odaxultext/xul
    oomapplication/x-AtlasMate-Pluginxwdimage/x-xwindowdump
    pacaudio/x-pacxyzchemical/x-pdb
    paeaudio/x-epacyz1application/x-yz1
    panapplication/x-panzapplication/x-compress
    pbmimage/x-portable-bitmapzacapplication/x-zaurus-zac
    pcximage/x-pcxzipapplication/zip

    三、文件创建、编辑与删除

    1、创建文件,可以在onActivity中接收到结果

    // Here are some examples of how you might call this method.
    // The first parameter is the MIME type, and the second parameter is the name
    // of the file you are creating:
    //
    // createFile("text/plain", "foobar.txt");
    // createFile("image/png", "mypicture.png");
    
    // Unique request code.
    private static final int WRITE_REQUEST_CODE = 43;
    ...
    private void createFile(String mimeType, String fileName) {
        Intent intent = new Intent(Intent.ACTION_CREATE_DOCUMENT);
    
        // Filter to only show results that can be "opened", such as
        // a file (as opposed to a list of contacts or timezones).
        intent.addCategory(Intent.CATEGORY_OPENABLE);
    
        // Create a file with the requested MIME type.
        intent.setType(mimeType);
        intent.putExtra(Intent.EXTRA_TITLE, fileName);
        startActivityForResult(intent, WRITE_REQUEST_CODE);
    }
    

    2、获取Uri之后,要是文件的Document.COLUMN_FLAGS 包含SUPPORTS_DELETE,则可以删除该文件:

    DocumentsContract.deleteDocument(getContentResolver(), uri);
    

    3、编辑文件

    private static final int EDIT_REQUEST_CODE = 44;
    /**
     * Open a file for writing and append some text to it.
     */
     private void editDocument() {
        // ACTION_OPEN_DOCUMENT is the intent to choose a file via the system's
        // file browser.
        Intent intent = new Intent(Intent.ACTION_OPEN_DOCUMENT);
    
        // Filter to only show results that can be "opened", such as a
        // file (as opposed to a list of contacts or timezones).
        intent.addCategory(Intent.CATEGORY_OPENABLE);
    
        // Filter to show only text files.
        intent.setType("text/plain");
    
        startActivityForResult(intent, EDIT_REQUEST_CODE);
    }
    
    private void alterDocument(Uri uri) {
        try {
            ParcelFileDescriptor pfd = getActivity().getContentResolver().
                    openFileDescriptor(uri, "w");
            FileOutputStream fileOutputStream =
                    new FileOutputStream(pfd.getFileDescriptor());
            fileOutputStream.write(("Overwritten by MyCloud at " +
                    System.currentTimeMillis() + "\n").getBytes());
            // Let the document provider know you're done by closing the stream.
            fileOutputStream.close();
            pfd.close();
        } catch (FileNotFoundException e) {
            e.printStackTrace();
        } catch (IOException e) {
            e.printStackTrace();
        }
    }
    

    4、检查最新的文件数据

    final int takeFlags = intent.getFlags()
                & (Intent.FLAG_GRANT_READ_URI_PERMISSION
                | Intent.FLAG_GRANT_WRITE_URI_PERMISSION);
    // Check for the freshest data.
    getContentResolver().takePersistableUriPermission(uri, takeFlags);
    

    四、拓展

    1、Android 7.0在存储访问框架中添加了虚拟文件的概念。
    2、即使虚拟文件没有二进制表示形式,您的客户端应用程序也可以通过将其强制转换为其他文件类型或使用ACTION_VIEW意图查看这些文件来打开其内容
    3、要打开虚拟文件,您的客户端应用程序需要包含特殊的逻辑来处理它们。如果要获取文件的字节表示形式(例如,预览文件),则需要从文档提供者处请求其他MIME类型。
    4、要在您的应用程序中获取虚拟文档的URI,首先要创建一个Intent以打开文件选择器UI,就像前面在Seach中为文档显示的代码一样。
    5、重要提示:由于应用无法使用openInputStream()方法直接打开虚拟文件,因此,如果您在ACTION_OPEN_DOCUMENT意向中包括CATEGORY_OPENABLE类别,则您的应用将不会收到任何虚拟文件。用户做出选择后,系统将调用onActivityResult()方法,如先前在处理结果中所示。您的应用可以检索文件的URI,然后使用类似于以下代码片段的方法来确定文件是否为虚拟文件。验证文件为虚拟文件后,可以将其强制转换为其他MIME类型,例如图像文件。以下代码段显示了如何检查虚拟文件是否可以表示为映像,如果可以,则从虚拟文件获取输入流。

    private boolean isVirtualFile(Uri uri) {
        if (!DocumentsContract.isDocumentUri(this, uri)) {
            return false;
        }
    
        Cursor cursor = getContentResolver().query(
            uri,
            new String[] { DocumentsContract.Document.COLUMN_FLAGS },
            null, null, null);
    
        int flags = 0;
        if (cursor.moveToFirst()) {
            flags = cursor.getInt(0);
        }
        cursor.close();
    
        return (flags & DocumentsContract.Document.FLAG_VIRTUAL_DOCUMENT) != 0;
    }
    
    
    private InputStream getInputStreamForVirtualFile(Uri uri, String mimeTypeFilter)
        throws IOException {
    
        ContentResolver resolver = getContentResolver();
    
        String[] openableMimeTypes = resolver.getStreamTypes(uri, mimeTypeFilter);
    
        if (openableMimeTypes == null ||
            openableMimeTypes.length &lt; 1) {
            throw new FileNotFoundException();
        }
    
        return resolver
            .openTypedAssetFileDescriptor(uri, openableMimeTypes[0], null)
            .createInputStream();
    }
    
    
    展开全文
  • android 浏览器 打开本地html文件的方法有些html文件放在本地磁盘和sdcard,如何用打开这个网页呢?这种应用在测试时非常有用。有2个方法:1. 使用文件管理如ES等,需要幸运的是你的文件管理直接用浏览器打开...
  • Android文件选择

    千次阅读 2017-09-15 18:10:50
    项目中用到文件选择,功能是可以筛选出常用的文件也可以在所有的文件中选择。 先看一下效果图: 图中,左面是可以选择常用的文件,右边就是从手机跟目录开始一层一层的选择。 UI 方面就不多说啦,使用两个...
  • 手机端 阅读 pdf 文件 touchPDF.js

    万次阅读 2017-06-23 15:37:14
    TouchPDF是一个jQuery插件,它使用pdf.js短语和呈现支持触摸手势和自动页面选项卡的Web PDF查看器。 依赖关系: PDF.js jQuery touchSwipe插件 jQuery panzoom插件 jQuery mousewheel插件 特征: PDF
  • 谷歌浏览可以直接在线查看pdf,而IE内核浏览器无法在线查看,默认是下载。 这里用到的是pdf.js,不仅支持IE内核浏览器,而且兼容手机查看pdf 官网地址:http://mozilla.github.io/pdf.js/ 版本:2.0.*   ...
  • 最近工作平台保存的图片(一般由 手机上传到共作平台,工作平台另存到电脑上之后),在WIN7系统windows照片查看器无法显示此图片,图片查看器提示“因为计算机上的可用内存可能不足,请关闭一些目前没有使用的程序...
  • Mac os 查看PDM文件

    万次阅读 2014-03-10 16:35:44
    Mac OS 没有查看PDM文件的工具,PowerDesigner只有windows版本,无Mac版,在Mac 上查看PDM文件非常不方便,或者装双系统,非常麻烦,现在有了ParsePDM工具,就不用担心了. ParsePDM需要依赖JDK1.7,机器如果没有安装,请到...
  • 按几次 alt 就好了 说起来还是无意中发现的 我再无法打开连接后关闭了浏览器并重新打开 用书签打开了百度准备搜索一下看看是否能打开连接 打字的时候我发现我打开了很多的功能页面 我第一反应就是很想 alt + ...
  • 查看手机包名方法介绍

    千次阅读 2018-09-03 09:23:15
    手机软件调试过程中,经常需要查看手机中的包名,下面介绍下查看的方法和步骤。 首先,使用USB线连接电脑和手机,如下图所示。 然后输入adb shell。连接手机和电脑。 使用dumpsys package | ...
  • 不借助第三方软件,实现手机通过wifi获取电脑共享的文件(没连接因特网也可以),实现无线访问远程文件。 本篇为诺基亚,后面写安卓的,网上搜寻的资料。 2.安装internet信息服务 开始--设置--控制面板--(性能...
  •  那么在这么一个大前端的环境下,客户端开发想写点html和js代码,又想在手机上看看效果,怎么办呢?  需要以下几个步骤: 大体流程:1. 安装webstorm,并设置webstorm,2,安装Charles,并设置charles。3. 设置...
  • IIS配置并让手机访问电脑文件

    千次阅读 2017-10-26 12:49:53
    IIS配置并让手机访问电脑文件
  • 微信或手机浏览器在线显示pdf文件

    万次阅读 2018-10-26 15:37:40
    在之前的文章中提到了如何在手机上显示office文件,这里提一下pdf文件如何在手机上展示。问题发生情况是,公司企业号会从OA系统定时获取信息,并且解析内网文章中的图片、文件,展示在微信中,后台发现程序报错,为...
  • 现在很多电子书和文档的格式是chm格式,这种比txt格式更加清晰,更有结构性,但是chm基本只能在电脑上看,对与想在手机上看电子书的同学就是一个悲剧,因为现在基本没有什么阅读支持chm文件,比如ireader QQ阅读...
  • Android仿微信朋友圈图片查看器

    千次阅读 2015-04-02 17:56:57
     看博文之前,希望大家先打开自己的微信点到朋友圈中去,仔细观察是不是发现朋友圈里的有个“九宫格”的图片区域,点击图片又会跳到图片的详细查看页面,并且支持图片的滑动和缩放?这个功能是不是很常用呢?!那么...
  • 手机 pdf 阅读

    2009-02-12 23:00:29
    修正了阅读HTML文件时,不显示空格的BUG 修正HTML阅读时解析不正确的BUG 提升HTML解析时的速度及降低了内存的消耗 阅读TXT时,偶尔出现“java.lang.RuntimeException: IOException character”的BUG将在下次修正,...
  • 手机上怎么看chm文件

    千次阅读 2016-01-27 10:22:33
    1首先,需要下载安装ABC Amber CHM 软件,专门用来转化chm格式的文件的软件,ABC Amber CHM 软件的使用可以看参考资料。2双击ABC Amber CHM 软件打开,然后点击图上打开的位置,选择目标文件,点击打开即可。3左边是...
  • pycharm 格式化html文件

    千次阅读 2018-10-17 16:47:57
    我们对Markdown编辑进行了一些功能拓展与语法支持,除了标准的Markdown编辑功能,我们增加了如下几点新功能,帮助你用它写博客: 全新的界面设计 ,将会带来全新的写作体验; 在创作中心设置你喜爱的代码...
  • 经常有朋友在使用一些没有带文件管理的空间时,苦于没有办法来解压上传的文件压缩包,而如果不先上传压缩包,直接上传文件夹的话耗费的时间太多。还有一些朋友希望将空间变成一个文件存储站,这时就需要一个功能...
  • 锐捷密码忘了!->锐捷密码查看器

    万次阅读 2012-04-09 14:56:56
    (0408更新)   由于我们锐捷大多数都是记住密码的,...!...呜呜~~ 于是自己花了点时间写了一个《锐捷密码破解》——《读@锐捷》!...像查看电信密码的那种!...http://ishare.iask.sina.com.cn/f/23853850.html   115
  • HTML5移动端手机网站开发流程

    万次阅读 多人点赞 2016-03-04 18:48:38
    最近一直在研究移动手机网站的开发,发现做手机网站没有想象中的那么难。为什么会这么说呢?我们试想下:我们连传统的PC网站都会做,难道连一个小小的手机网站难道都搞不定吗?其实手机网站就是一个微缩版的PC网站...
  • pdf文件在线预览,兼容多浏览器和手机

    万次阅读 热门讨论 2018-11-06 12:18:44
    最近学习了一下网页在线预览pdf文件的实现方式,主要有: PDFObject:使用起来非常方便,电脑端兼容性好,试过能兼容ie9,也很快,但在手机上一些浏览器无法在线. jquery.media.js:使用起来非常方便,不支持ie。ie的...
  • 10个开源的基于WEB的文件管理

    千次阅读 2017-05-02 15:19:00
    因此,下面列出你会用到的10个最好的开源的基于WEB的文件管理。 eXtplorer: 这个程序为你提供了移动、复制、编辑、搜索、删除、下载和上传功能。此外,你也能用 eXtplorer 创建和提取档案,文件夹和新文件。它...
  • 安卓手机如何查看已连接的WIFI密码

    千次阅读 2014-05-01 22:07:34
    随着智能手机的普及,手机通过Wifi 来上网已经不是什么难事。而对于Android 手机,更为强大的是每次Wifi 连接之后,系统会自动保存连接记录,以便在其他时刻再次连上。... 目的:查看Android 手机已经连接
  • 第一步:安装tomcat  安装步骤 第二步:将项目放在tomcat下的webapps这个文件下面 ...第四步:在tomcat下的conf文件夹中找到server.xml文件通过记事本或者其他代码编辑打开找到端口号,一半的情况下都是...
  • 【Project】ido手机阅读

    千次阅读 多人点赞 2012-10-23 06:57:36
    “i do”手机阅读是应用于微软windows mobile6.0移动设备操作系统,基于.NET Compact Framework编程架构,c#编程语言支持的移动应用软件。旨在方便的进行手机阅读以及公务文章的阅读(doc格式的支持),方便...
  • 使用HTML5技术制作在线PDF阅读(附源码)

    千次下载 热门讨论 2013-05-13 14:08:16
    建议开发童鞋使用统一开发环境UDE来进行查看、调试、开发~~~统一开发环境是一款HTML5跨平台一站式应用开发、调试和部署工具。通过整合多种手机应用的开发包(SDK)及对应的Eclipse Plugin、跨平台中间件、中国移动...

空空如也

空空如也

1 2 3 4 5 ... 20
收藏数 56,347
精华内容 22,538
关键字:

手机html文件查看器