安卓怎么将文件保存到download

安卓怎么将文件保存到download,第1张

我们将创建一个示例,首先使用腔清Dio包从 URL 下载文件,然后将其存储在其中Download/AppName文件夹。 步骤: 1、在pubspec.yaml中添加相关包。 2、在AndroidManifest.xml中添加相关的存储和网络权限。 3、神圆迹 从flutter调用一个原生的android函数。 4、请求存游并储运行时权限。 5、下载文件到本地目录。 6、将文件移动到 Download/AppName 文件夹。 第1步: 添加相关包pubspec.yaml path_provider: ^2.0.11 dio: ^4.0.6 device_info_plus: ^4.0.1 第2步: 在AndroidManifest.xml. <uses-permission android:name="android.permission.INTERNET"/><uses-permission android:name="android.permission.WRITE_EXTERNAL_STORAGE" /><uses-permission android:name="android.permission.ACCESS_MEDIA_LOCATION" /><uses-permission android:name="android.permission.READ_EXTERNAL_STORAGE" />第3 步: 现在,我们必须请求运行时存储权限。

查看更多

下圆盯面是android多线程下载例子截图:

package mm.shandong.com.testmultithreaddownload

import android.app.ProgressDialog

import android.content.Intent

import android.net.Uri

import android.os.Environment

import android.os.Handler

import android.os.Message

import android.support.v7.app.AppCompatActivity

import android.os.Bundle

import android.text.TextUtils

import android.view.View

import android.widget.EditText

import android.widget.Toast

import java.io.File

import mm.shandong.com.testmultithreaddownload.thread.UpdateUIThread

import mm.shandong.com.testmultithreaddownload.util.FileUtil

public class TestMultiThreadDownLoadActivity extends AppCompatActivity {

    ProgressDialog pb

    EditText editText

    Handler handler

    private UpdateUIThread mUpdateUIThread = null

    ///文件路径

    private String url =

            "http://gdown.baidu.com/data/wisegame/3c00add7144d3915/kugouyinle.apk"

    @Override

    protected void onCreate(Bundle savedInstanceState) {

        super.onCreate(savedInstanceState)

        setContentView(R.layout.activity_test_multi_thread_down_load)

        editText = (EditText) findViewById(R.id.editText)

        initHandler()

    }

    public void initHandler() {

        handler = new Handler() {

            @Override

            public void handleMessage(Message msg) {

                switch (msg.what) {

                    case FileUtil.startDownloadMeg:

                        pb.setMax(mUpdateUIThread.getFileSize())   //开始

                        break

                    case FileUtil.updateDownloadMeg:

                        if (!mUpdateUIThread.isCompleted())   //下载进度消息

                        {

                            pb.setProgress(mUpdateUIThread.getDownloadSize())

             槐尘               pb.setMessage("下载速度:" +

                               mUpdateUIThread.getDownloadSpeed() + "k/秒    " +

                               "   下载百分比" + mUpdateUIThread.getDownloadPercent() + "%")

                        } else {

                            pb.setMessage("下载完成")

                        }

                        break

                    case FileUtil.endDownloadMeg:

                        Toast.makeText(TestMultiThreadDownLoadActivity.this,

                                "下载完成,马上安装", Toast.LENGTH_SHORT).show()

                /*apk安装界面跳转*/

                        String filename = FileUtil.getFileName(url)

           橘明和             String str = "/myfile/" + filename

                        String fileName = Environment.getExternalStorageDirectory() + str

                        Intent intent = new Intent(Intent.ACTION_VIEW)

                        intent.setDataAndType(Uri.fromFile(new File(fileName)),

                                "application/vnd.android.package-archive")

                        startActivity(intent)

                        break

                }

                super.handleMessage(msg)

            }

        }

    }

   ///开始下载软件

    public void startDownLoad(View view) {

        if (TextUtils.isEmpty(editText.getText().toString())) {

            Toast.makeText(this, "你输入下载文件地址", Toast.LENGTH_SHORT).show()

            return

        } else {

            url = editText.getText().toString()

        }

        //启动线程初始化下载参数

        mUpdateUIThread = new UpdateUIThread(handler, url,

                FileUtil.setMkdir(this) + File.separator, FileUtil.getFileName(url))

        pb = new ProgressDialog(this)

        pb.setProgressStyle(ProgressDialog.STYLE_HORIZONTAL)

        pb.show()

        mUpdateUIThread.start()

    }

}

例子代码太长,只能给你一部分,如果想看完整例子代码,请去360手机助手下载安卓学习手册,点击里面的源码可以查看完成代码,方面快速,里面还有安卓的其它小例子,共108个。


欢迎分享,转载请注明来源:内存溢出

原文地址: http://outofmemory.cn/tougao/12264953.html

(0)
打赏 微信扫一扫 微信扫一扫 支付宝扫一扫 支付宝扫一扫
上一篇 2023-05-24
下一篇 2023-05-24

发表评论

登录后才能评论

评论列表(0条)

保存