精华内容
下载资源
问答
  • 应客户要求在通过手机访问系统主页时提供一个文件下载的功能。通过IOS产品、windows下所有浏览器下载都没有问题,但是通过android系统的手机访问下载时会出现两次请求的情况,有的品牌的android手机完全就无法下载,...
  • 通过使用android系统下载管理器下载文件下载文件后,自动打开相应的文件。附带常见文件mime类型
  • android调用系统下载下载文件

    千次阅读 2016-09-08 09:33:08
    在项目中使用到了在...得到url:文件下载地址  2.使用URL下载:  (1)下载前先判断文件是否已经在下载,避免重复下载:  // 判断该文件是否在下载 private boolean isDowning(String uri) { boolean fla

       在项目中使用到了在android端下载服务端的文件,之前使用的是http下载方式,现在想改成调用系统的下载器进行下载,实现步骤为:

      1.得到url:文件下载地址

      2.使用URL下载:

     (1)下载前先判断文件是否已经在下载,避免重复下载:

      
    // 判断该文件是否在下载
    	private boolean isDowning(String uri) {
    		boolean flag = false;
    		try {
    			DownloadManager.Query query = new DownloadManager.Query();
    
    			query.setFilterByStatus(DownloadManager.STATUS_RUNNING);
    			if (downloadManager == null) {
    				downloadManager = ((DownloadManager) this
    						.getSystemService(Activity.DOWNLOAD_SERVICE));
    			}
    			Cursor c = downloadManager.query(query);
    			String downingURI;
    			while (c.moveToNext()) {
    				downingURI = c.getString(c
    						.getColumnIndex(DownloadManager.COLUMN_URI));
    				if (downingURI.equalsIgnoreCase(uri)) {
    					flag = true;
    					break;
    				}
    			}
    			if (c != null) {
    				c.close();
    			}
    		} catch (Exception ex) {
    			ex.printStackTrace();
    		}
    		return flag;
    	}
      (2)如果未在下载则下载文件:
    // 本地存储路径
    Request request = new Request(Uri.parse(url));
    // 在通知栏中显示
    request.setShowRunningNotification(true);
    request.setVisibleInDownloadsUi(true);
    String dir ="tempFilrDir";//本地文件存储目录 相对路径
    String fileName =  "悟空.mp3";//下载的文件名称
    
    request.setDestinationInExternalPublicDir(dir, fileName);//文件存储路径 绝对路径
    request.setTitle(<span style="font-family: KaiTi_GB2312;">fileName </span>);//下载时在通知栏显示的文字
    
    //downloadManager = ((DownloadManager) this.getSystemService(Activity.DOWNLOAD_SERVICE));
    <pre name="code" class="java">long downloadId = downloadManager.enqueue(request);//执行下载   
    DownloadCompleteReceiver.mDownloadIDs.add(new Long(downloadId));// DownloadCompleteReceiver下载完成的接收器,第//3步会讲到
     
    
    (3)接收完成的接收器
    <span style="font-family: KaiTi_GB2312;"></span><pre name="code" class="java">package com.bcts.appmanage.manage;
    import java.util.ArrayList;
    import android.app.DownloadManager;
    import android.content.BroadcastReceiver;
    import android.content.Context;
    import android.content.Intent;
    import android.database.Cursor;
    import android.os.Handler;
    import android.os.Message;
    import android.util.Log;
    
    import com.bcts.appmanage.tools.Constant;
    
    /**
     * 调用系统下载器下载文件
     *  
     */
    public class DownloadCompleteReceiver extends BroadcastReceiver {
    	public static final String TAG = "DownloadCompleteReceiver";
    
    	public static ArrayList<Long> mDownloadIDs = new ArrayList<Long>();
    
    	public String fileName;
    	public  Handler mHandler;
    
    
    	public  DownloadCompleteReceiver(Handler handler) {
    		mHandler = handler ;
    	}
    
    	@Override
    	public void onReceive(Context context, Intent intent) {
    		if (intent.getAction().equals(DownloadManager.ACTION_DOWNLOAD_COMPLETE)) {
    			long downId = intent.getLongExtra(
    					DownloadManager.EXTRA_DOWNLOAD_ID, -1);
    			//
    			if (mDownloadIDs.contains(downId)) {
    				// //
    				DownloadManager downloadManager = (DownloadManager) context
    						.getSystemService(Context.DOWNLOAD_SERVICE);
    
    				DownloadManager.Query query = new DownloadManager.Query();
    				// query.setFilterByStatus(DownloadManager.STATUS_SUCCESSFUL);
    				query.setFilterById(downId);
    				Cursor c = downloadManager.query(query);
    				if (c.moveToFirst()) {
    					fileName = c.getString(c.getColumnIndex(DownloadManager.COLUMN_LOCAL_FILENAME));
    					Message m = new Message();
    					m.obj = fileName;
    					m.what = Constant.DOWNLOAD_FINISHED;
    					mHandler.sendMessage(m);
    					Log.i(TAG, "下载'" + fileName + "'完成");
    				}else{
    					Log.i(TAG, "下载'" + fileName + "'失败");
    				}
    				if (c != null) {
    					c.close();
    				}
    				mDownloadIDs.remove(downId);
    
    			}
    
    		}
    	}
    
    }
    
    (4)注册接收完成的广播
     
    
    <span style="font-family: KaiTi_GB2312;">   </span><pre name="code" class="java">	downloadCompleteReceiver = new DownloadCompleteReceiver(mHandler);
    		IntentFilter myIntentFilter = new IntentFilter();
    		myIntentFilter.addAction(DownloadManager.ACTION_DOWNLOAD_COMPLETE);
    		// 注册广播
    		registerReceiver(downloadCompleteReceiver, myIntentFilter);

     
    

    展开全文
  • 本篇文章主要介绍了使用Android系统提供的DownloadManager来下载文件,可以将长时间的下载任务交给系统,完全由系统管理,有需要的可以了解下。
  • Android 系统签名文件

    2016-01-23 11:19:47
    Android系统签名文件 ,针对没有签名的文件进行的系统签名.
  • 我们知道安卓手机软件程序均为APK格式文件,很多小白朋友对于安卓...对于多数没有Wifi的手机用户多数则电脑上下载安卓软件,然后复制到手机中再安装,这里就会涉及到如何安装apk文件的问题,下面一起来看看。APK是An...

    我们知道安卓手机软件程序均为APK格式文件,很多小白朋友对于安卓手机如何安装apk文件不是很了解,下面本文于大家简单介绍下。由于很多朋友使用一些手机应用软件里面下载安装程序,但那仅仅是针对Wifi用户很方便,而没有Wifi用户因流量过高,一般都伤不起。对于多数没有Wifi的手机用户多数则电脑上下载安卓软件,然后复制到手机中再安装,这里就会涉及到如何安装apk文件的问题,下面一起来看看。

    APK是Android Package的缩写,即Android安装包。APK是类似Symbian Sis或Sisx的文件格式。通过将APK文件直接传到Android模拟器或Android手机中执行即可安装。APK文件其实是zip格式,但后缀名被修改为apk,通过UnZip解压后,可以看到Dex文件,Dex是Dalvik VM executes的全称,即Android Dalvik执行程序,并非Java ME的字节码而是Dalvik字节码。

    apk文件安装方法大致有两种:

    ⒈)在电脑中下载好APK软件文件,然后使用数据线将手机与电脑连接,然后将APK文件拷贝到手机SD卡中,然后再进入手机文件管理器,找到APK文件,然后打开运行安装即可。

    ⒉)另外一种更方便的方法是,在电脑中安装豌豆荚或者91助手,然后下载的APK文件即可被豌豆荚或者81手机助手识别,然后我们只需要将手机连接电脑,打开手机USB调试模式,让豌豆荚或者91助手连接上手机即可,之后我们直接在电脑中打开下载好的APK文件,即可打开豌豆荚或者91助手,之后即可安装到手机,如下图:

    5d59a0d439a37aff8df75979e8495abd.png

    直接双击打开APK文件

    之后会自动打开豌豆荚或者91手机助手,提示安装APK文件软件到手机,如下图:

    b51ccad241ca17565433d4ab2f761760.png

    APK文件安装方法

    如上图,我们点击安装即可,稍后即可成功安装到手机上了,关于如何安装apk文件就为大家介绍到这里,其实都很简单,还不会的朋友赶紧去试试吧。

    展开全文
  • Android调用系统下载服务下载文件

    千次阅读 2018-06-10 15:02:51
    下载代码如下: public void download() { String fileName = new File(getFilesDir(),"dl").getAbsolutePath(); String url = ""; DownloadManager downloadManager = (DownloadManager) ...

    下载代码如下:

        public void download() {
            String fileName = new File(getFilesDir(), "dl").getAbsolutePath();
            //文件下载链接
            String url = "";
            DownloadManager downloadManager = (DownloadManager) getSystemService(Context.DOWNLOAD_SERVICE);
            DownloadManager.Request request = new DownloadManager.Request(Uri.parse(url));
            // 通知栏的下载通知
            request.setNotificationVisibility(DownloadManager.Request.VISIBILITY_VISIBLE_NOTIFY_COMPLETED);
            request.setTitle(fileName);
            request.setMimeType("application/vnd.android.package-archive");
            File file = new File(getExternalFilesDir(Environment.DIRECTORY_DOWNLOADS), fileName);
            if (file.exists()) {
                file.delete();
            }
            request.setDestinationInExternalFilesDir(this, Environment.DIRECTORY_DOWNLOADS, fileName);
            long downloadId = downloadManager.enqueue(request);
            Log.d(TAG, "downloadId:" + downloadId);
            //文件下载完成会发送完成广播,可注册广播进行监听
            IntentFilter intentFilter = new IntentFilter(DownloadManager.ACTION_DOWNLOAD_COMPLETE);
            intentFilter.addAction(DownloadManager.ACTION_NOTIFICATION_CLICKED);
            intentFilter.addAction(DownloadManager.ACTION_VIEW_DOWNLOADS);
            mDownloadBroadcast = new DownloadBroadcast(file);
            registerReceiver(mDownloadBroadcast, intentFilter);
        }
    / **
     *  文件下载完成或点击通知栏广播

     */

        private class DownloadBroadcast extends BroadcastReceiver {
    
            private final File mFile;
    
            public DownloadBroadcast(File file) {
                mFile = file;
            }
    
            @Override
            public void onReceive(Context context, Intent intent) {
                String action = intent.getAction();
                Logger.d("action:" + action);
                if (DownloadManager.ACTION_DOWNLOAD_COMPLETE.equals(action)) {
                    Intent intent1 = new Intent(Intent.ACTION_VIEW);
                    intent1.addFlags(Intent.FLAG_ACTIVITY_NEW_TASK);
                    if (Build.VERSION.SDK_INT > Build.VERSION_CODES.M) {
                        intent1.addFlags(Intent.FLAG_GRANT_READ_URI_PERMISSION);
                        Uri uri1 = FileProvider.getUriForFile(context, BuildConfig.APPLICATION_ID + ".fileProvider", mFile);
                        intent1.setDataAndType(uri1, "application/vnd.android.package-archive");
                    } else {
                        intent1.setDataAndType(Uri.fromFile(mFile), "application/vnd.android.package-archive");
                    }
                    Logger.d("mFile:" + mFile);
                    try {
                        startActivity(intent1);
                    } catch (Exception e) {
                        e.printStackTrace();
                    }
                }
            }
        }

    最后不要忘了界面销毁的时候反注册广播

        @Override
        public void onDestroy() {
            super.onDestroy();
            if (mDownloadBroadcast != null) {
                unregisterReceiver(mDownloadBroadcast);
            }
        }

    如果是下载apk文件,下载完成后需要调起安装应用安卓7.0以上还要做以下配置

    AndroidManifest中注册provider如下,用于7.0以上携带数据跳转到其他应用

       <provider
        android:name="android.support.v4.content.FileProvider"
         android:authorities="${applicationId}.fileProvider"
         android:exported="false"
         android:grantUriPermissions="true">
         <meta-data
            android:name="android.support.FILE_PROVIDER_PATHS"
            android:resource="@xml/file_path"/>
        </provider>

    file_path的xml文件如下

        <?xml version="1.0" encoding="utf-8"?>
         <paths xmlns:android="http://schemas.android.com/apk/res/android">
         <external-path name="external_files" path="."/>
        </paths>

    展开全文
  • Android选择系统相册或拍照上传源码.zip,太多无法一一验证是否可用,程序如果跑不起来需要自调,部分代码功能进行参考学习。
  • Android文件系统全面讲解。这是博客《Android文件系统全面讲解》的示例项目。 欢迎访问:http://blog.csdn.net/codingending
  • 主要介绍了详解安卓系统中的Android.mk文件,该文件用来告诉系统关于源代码的编译,需要的朋友可以参考下
  • 创建 Android 文件系统

    2010-09-25 01:06:44
    创建 Android 文件系统 system userdata ramdisk
  • 创建android文件系统

    2010-12-20 12:40:05
    创建android文件系统 详细步骤 大家可以参考
  • android文件系统浏览器

    2014-11-28 00:01:02
    android文件系统浏览器,浏览sdcard文件夹下所有的文件,以及文件夹深一层的跳转
  • 这个demo演示从网上下载文件并保存到手机,demo中可以下载一个XML文件并在Console窗口输出,还可以下载一个MP3文件并保存到手机存储目录中的BoBoMusic文件夹中,下载保存成功会返回:0。(XML和MP3文件我已经传到...
  • 网上找的一篇关于Android文件系统启动过程的分析,这方面的东西不多。Android文件系统启动过程.doc
  • 最新的1.0.0版本,在android4.2下简单测试过基本功能。 最新的1.0.0版本,在android4.2下简单测试过基本功能。
  • android系统文件的权限

    千次阅读 多人点赞 2011-12-12 16:28:39
    android是基于linux开发的,因此想要了解android系统文件的权限,需要从Linux说起。 Linux系统权限简介: 一个文件一共有三个组别:用户、群组、其它 其中每个组包含三种权限:读r、写w、执行x 也就是说一个...
    android是基于linux开发的,因此想要了解android系统文件的权限,需要从Linux说起。

    Linux系统权限简介:

    一个文件一共有三个组别:用户、群组、其它
    其中每个组包含三种权限:读r、写w、执行x
    也就是说一个文件共有9个权限属性。
    从左往右一到三位是[用户],四到六位是[群组],七到九位是[其它]

    举例:我现在用RE管理器可以看到我们做美化经常修改文件framework-res.apk的权限为rw-r--r--
     


    它的意思就是

    [用户]对其享有读写权限,[群组]享有读权限,[其它]享有读权限

    【权限与数字对应关系】

    时候为了方便编写脚本、使用终端,人们会用数字来表示文件的权限!

    数字与权限的对应关系:

    读(read)         r=4
    写(write)        w=2
    执行(excute)   x=1

    总共用三个数字代表三个组的权限,每个数字的大小等于每个组所包含的三个权限的数字之和。

    例如:一个文件的权限为rw-rwx-r-x,它的数字表示方法就是675

    代表
    [用户]读  写
    [群组]读  写   执行
    [其它]读        执行

    朋友们,一定知道framework-res.apk的数字表示方法就为644了吧

    常用的权限组合:
    444=r--r--r--
    644=rw-r--r--
    666=rw-rw-rw
    755=rwxr-xr-x
    777=rwxrwxrwx

    --------------------------------  转贴部分End  --------------------------------------

    看了上面那部分,相信大家对linux 文件和目录的读写执行(rwx)权限有一定了解了

    在这普通权限外还有3个特殊权限SUID、SGID、Sticky

     


    大家可以从截图看到,打开framework-res.apk的权限,下有特殊权限选项,不能乱选哦,做个了解

    SUID权限的作用是使文件的执行者拥有文件的所有者的权限,所以修改此权限要慎重

    SGID权限可以作用于目录和文件

    Sticky权限仅对目录有效,这个目录下的文件和目录只有root与文件的所有者可以删除,以此达到防删除的功效

    参考:http://bbs.gfan.com/thread-3237186-1-1.html
    展开全文
  • Android文件系统详解

    万次阅读 2018-01-27 22:17:46
    文件系统一直是Android开发过程中经常接触的东西。而关于内部存储、外部存储、外置存储、私有存储、公共存储,以及访问哪些文件需要申请运行时权限等问题,一直是许多开发者头疼的问题。本文就将详细地讲解这些重要...
  • 一、选择文件【系统文件管理器】 import android.annotation.SuppressLint; import android.content.ContentUris; import android.content.Context; import android.database.Cursor; import android.net.Uri; ...
  • Android系统源码下载

    2019-03-30 22:33:11
    Android系统源码, 包含2.1以及4.0-8.0,没有最新的9.0,后续有的话会重新提交更新。
  • 1.了解 使用JNI扩展Qt应用 参考《Qt on Android核心编程》15章 ... 项目工程extendsQtWithJava 2.添加 调用系统文件管理功能 ... android 调用系统文件管理器 3.从Uri获取文件路径 参考:Android将"content...
  • Android 打开系统文件管理器选择文件

    千次阅读 2019-11-08 17:48:54
    记录一下打开手机文件管理器选择文件的实现代码: //定义 请求返回码 public static final int IMPORT_REQUEST_CODE=10005; public void openFileManager(){ Intent intent = new Intent(Intent.ACTION_GET_...
  • Android文件系统基本认识

    千次阅读 2020-09-26 12:23:16
    本人是二流不知名地方本科毕业既失业,然后经过很社会培训班洗礼后,再各种碰壁三个月后开始Android工作,...通过网上博客和AndroidStudio自带的DeviceFileExplorer基本上可以理解整个Android系统文件基本框架; ...
  • android 调用系统文件管理器

    万次阅读 多人点赞 2018-07-11 09:09:23
    今天,简单讲讲android如何调用系统文件管理器获取目录下的文件资源。这几天,还是因为搬家的事,导致自己状态很差。和领导说想要辞职,领导说还是先适应一下在说。所以还是坚持了。这个其实也很简单,之前做一个...
  • Android文件系统

    千次阅读 2012-10-10 11:01:15
    Android编译生成的三个镜像文件 Android源码编译后,在out/target/product/generic下生成的三个镜像文件:...ramdisk.img是根文件系统,system.img包括了主要的包、库等文件,userdata.img包括了一些用户数据,andr
  • Android存储系统及存储的挂载 Android是基于Linux内核开发的,所以它的文件系统也是跟Linux文件系统类似。 首先我们来看Android存储的分类。...对于Android系统来说,存储只分为内部存储和外部存储两类。内部
  • Android 文件系统及权限修改

    千次阅读 2015-12-04 11:02:23
    1、android文件系统
  • Android系统文件目录路径说明

    千次阅读 2017-11-08 11:28:15
    Android 存储路径
  • 编译好的Android文件系统。编译好的Android内核镜像。提供给Android驱动开发人员环境搭建时所需。

空空如也

空空如也

1 2 3 4 5 ... 20
收藏数 551,027
精华内容 220,410
关键字:

安卓系统文件下载