admin管理员组

文章数量:1585965

github https://github/AriaLyy/Aria

或者  github https://github/maning0303/MNUpdateAPK

compile 'com.arialyy.aria:aria-core:3.4.8'
annotationProcessor 'com.arialyy.aria:aria-compiler:3.4.8'
public class MainActivity extends AppCompatActivity {
    String s="http://app.mi/download/634713";
    @Override
    protected void onCreate(Bundle savedInstanceState) {
        super.onCreate(savedInstanceState);
        setContentView(R.layout.activity_main);
        String  STORE_PATH= Environment.getExternalStorageDirectory()+"/apk/camerademo"+"/a.apk";
        Aria.download(this)
                .load(s)     //读取下载地址
                .setFilePath(STORE_PATH) //设置文件保存的完整路径
                .start();   //启动下载
        Aria.download(this).register();

    }
    //在这里处理任务执行中的状态,如进度进度条的刷新
    @Download.onTaskRunning
    protected void running(DownloadTask task) {
        int p = task.getPercent(); //任务进度百分比
        Log.e("ddddddddddddddddd",String.valueOf(p));
    }

    @Download.onTaskComplete
    void taskComplete(DownloadTask task) {
        //在这里处理任务完成的状态
        Log.e("ddddddddddddddddd","下载完成");
        String downloadPath = task.getDownloadPath();
        Intent i = new Intent(Intent.ACTION_VIEW);
        if (Build.VERSION.SDK_INT >= 24) { //适配安卓7.0
            i.setFlags(Intent.FLAG_GRANT_READ_URI_PERMISSION|Intent.FLAG_ACTIVITY_NEW_TASK);

            Uri apkFileUri = FileProvider.getUriForFile(getApplicationContext(),
                    getPackageName()+".fileprovider", new File( downloadPath));
            i.setDataAndType(apkFileUri, "application/vnd.android.package-archive");
        } else {
            i.setFlags(Intent.FLAG_ACTIVITY_NEW_TASK);
            i.setAction(Intent.ACTION_VIEW);
            i.setDataAndType(Uri.parse("file://" + downloadPath.toString()),
                    "application/vnd.android.package-archive");// File.toString()会返回路径信息
        }
        startActivity(i);
    }
}

 

适配7.0 配置FileProvider

1 清单文件中加入

<provider
    android:name="android.support.v4.content.FileProvider"
    android:authorities="com.example.administrator.xiazai.fileprovider"
    android:exported="false"
    android:grantUriPermissions="true">
    <meta-data
        android:name="android.support.FILE_PROVIDER_PATHS"
        android:resource="@xml/file_paths"/>
</provider>

2 创建文件夹

3 创建 file_paths

<?xml version="1.0" encoding="utf-8"?>
<paths>
    <!--代表外部存储区域的根目录下的文件 Environment.getExternalStorageDirectory()/DCIM/camerademo目录-->
    <external-path name="hm_DCIM" path="DCIM/camerademo" />
    <external-path name="hm_DCIM" path="apk/camerademo" />
    <!--代表外部存储区域的根目录下的文件 Environment.getExternalStorageDirectory()/Pictures/camerademo目录-->
    <external-path name="hm_Pictures" path="Pictures/camerademo" />
    <external-path name="hm_Pictures" path="Pictures/camerademo" />
    <!--代表app 私有的存储区域 Context.getFilesDir()目录下的images目录 /data/user/0/com.hm.camerademo/files/images-->
    <files-path name="hm_private_files" path="images" />
    <files-path name="hm_private_files" path="apk.apk" />
    <!--代表app 私有的存储区域 Context.getCacheDir()目录下的images目录 /data/user/0/com.hm.camerademo/cache/images-->
    <cache-path name="hm_private_cache" path="images" />
    <!--代表app 外部存储区域根目录下的文件 Context.getExternalFilesDir(Environment.DIRECTORY_PICTURES)目录下的Pictures目录-->
    <!--/storage/emulated/0/Android/data/com.hm.camerademo/files/Pictures-->
    <external-files-path name="hm_external_files" path="Pictures" />
    <!--代表app 外部存储区域根目录下的文件 Context.getExternalCacheDir目录下的images目录-->
    <!--/storage/emulated/0/Android/data/com.hm.camerademo/cache/images-->
    <!--<external-cache-path name="hm_external_cache" path="" />-->
</paths>

 

本文标签: 并安装apk