如何使用PRDownloader库下载文件
how to use PRDownloader library to download file
我想使用 PRDownloader 库下载文件,但我有两个方程
第一:如何使用库下载文件? ...
第二个: 我必须在 String dirPath
中输入什么?....
我的 MainActivity
public class MainActivity extends AppCompatActivity {
@Override
protected void onCreate(Bundle savedInstanceState) {
super.onCreate(savedInstanceState);
setContentView(R.layout.activity_main);
PRDownloader.initialize(this);
PRDownloaderConfig config = PRDownloaderConfig.newBuilder()
.setDatabaseEnabled(true)
.build();
PRDownloader.initialize(getApplicationContext(), config);
String url = "https://firebasestorage.googleapis.com/v0/b/mohammed-1f35b.appspot.com/o/fear-storynory-jana.mp3?alt=media&token=4d0fc7a3-2b95-4ddd-8ecc-c792a09ab539";
String fileName ="myPhoto";
String dirPath = "????????";
int downloadId = PRDownloader.download(url, dirPath, fileName)
.build()
.setOnStartOrResumeListener(new OnStartOrResumeListener() {
@Override
public void onStartOrResume() {
}
})
.setOnPauseListener(new OnPauseListener() {
@Override
public void onPause() {
}
})
.setOnCancelListener(new OnCancelListener() {
@Override
public void onCancel() {
}
})
.setOnProgressListener(new OnProgressListener() {
@Override
public void onProgress(Progress progress) {
}
})
.start(new OnDownloadListener() {
@Override
public void onDownloadComplete() {
}
@Override
public void onError(Error error) {
}
});
PRDownloader.pause(downloadId);
PRDownloader.cancel(downloadId);
}
}
Dir 路径是您要在设备上写入文件的位置(就像您要下载文件的位置)。
它可以是 context.getFilesDir().toString()
这为您提供了本地文件的路径。
当它下载文件时,onDownloadComplete()
会被调用,之后你就可以访问你的文件了
像这样:
Uri fileURI = FileProvider.getUriForFile(this, authorities, new File(getFilesDir() +"/" + filename));
除非您不创建 File Provider,否则此 不会 工作。这就像你不能未经许可使用设备存储,所以你必须创建 provider。
这是非常好的参考:FileProvider。
祝你好运。
这里是一个如何使用 PRDownloader 下载的例子:
private int downloadFile(url){
String fileName = url.substring(url.lastIndexOf('/')+1);
String dirPath = getFilesDir().getAbsolutePath()+File.separator+"downloads";
//String dirPath = android.os.Environment.getExternalStorageDirectory().getAbsolutePath()+File.separator+"downloads";
return /*download id*/ PRDownloader.download(url, dirPath, fileName)
.build()
.start(new OnDownloadListener() {
@Override
public void onDownloadComplete() {
log("download complete!");
}
@Override
public void onError(Error error) {
log("onError: " +error.toString());
}
});
}
fileName
是文件下载后的存储方式。
dirPath
是存储位置。
如何调用它的示例:
String url = "https://www.your-url.com/files/file.txt"
int downloadId = downloadFile(url);
您可以将文件存储在 getFilesDir()
的内部存储器或 getExternalStorageDirectory()
的外部存储器。
您不需要任何特殊权限即可存储到内部存储器,但用户将无法访问数据。如果用户删除应用程序,它也会被删除。
如果存储在外部存储上,则需要请求用户的许可。他将能够看到这些文件(例如,使用文件浏览器)。
dirPath 是您要保存下载文件的位置的路径
喜欢:"/sdcard/downloads"
您可以像下面的代码一样使用这个库:
downloadID = PRDownloader.download(url,path,"hellow.mp4")
.build()
.setOnStartOrResumeListener(new OnStartOrResumeListener() {
@Override
public void onStartOrResume() {
}
})
.setOnPauseListener(new OnPauseListener() {
@Override
public void onPause() {
}
})
.setOnCancelListener(new OnCancelListener() {
@Override
public void onCancel() {
}
})
.setOnProgressListener(new OnProgressListener() {
@Override
public void onProgress(Progress progress) {
}
})
.start(new OnDownloadListener() {
@Override
public void onDownloadComplete() {
}
@Override
public void onError(Error error) {
}
});
运行上面的代码将开始您的下载
最后使用 downloadId
暂停、恢复或取消特殊下载案例
我想使用 PRDownloader 库下载文件,但我有两个方程
第一:如何使用库下载文件? ...
第二个: 我必须在 String dirPath
中输入什么?....
我的 MainActivity
public class MainActivity extends AppCompatActivity {
@Override
protected void onCreate(Bundle savedInstanceState) {
super.onCreate(savedInstanceState);
setContentView(R.layout.activity_main);
PRDownloader.initialize(this);
PRDownloaderConfig config = PRDownloaderConfig.newBuilder()
.setDatabaseEnabled(true)
.build();
PRDownloader.initialize(getApplicationContext(), config);
String url = "https://firebasestorage.googleapis.com/v0/b/mohammed-1f35b.appspot.com/o/fear-storynory-jana.mp3?alt=media&token=4d0fc7a3-2b95-4ddd-8ecc-c792a09ab539";
String fileName ="myPhoto";
String dirPath = "????????";
int downloadId = PRDownloader.download(url, dirPath, fileName)
.build()
.setOnStartOrResumeListener(new OnStartOrResumeListener() {
@Override
public void onStartOrResume() {
}
})
.setOnPauseListener(new OnPauseListener() {
@Override
public void onPause() {
}
})
.setOnCancelListener(new OnCancelListener() {
@Override
public void onCancel() {
}
})
.setOnProgressListener(new OnProgressListener() {
@Override
public void onProgress(Progress progress) {
}
})
.start(new OnDownloadListener() {
@Override
public void onDownloadComplete() {
}
@Override
public void onError(Error error) {
}
});
PRDownloader.pause(downloadId);
PRDownloader.cancel(downloadId);
}
}
Dir 路径是您要在设备上写入文件的位置(就像您要下载文件的位置)。
它可以是 context.getFilesDir().toString()
这为您提供了本地文件的路径。
当它下载文件时,onDownloadComplete()
会被调用,之后你就可以访问你的文件了
像这样:Uri fileURI = FileProvider.getUriForFile(this, authorities, new File(getFilesDir() +"/" + filename));
除非您不创建 File Provider,否则此 不会 工作。这就像你不能未经许可使用设备存储,所以你必须创建 provider。
这是非常好的参考:FileProvider。
祝你好运。
这里是一个如何使用 PRDownloader 下载的例子:
private int downloadFile(url){
String fileName = url.substring(url.lastIndexOf('/')+1);
String dirPath = getFilesDir().getAbsolutePath()+File.separator+"downloads";
//String dirPath = android.os.Environment.getExternalStorageDirectory().getAbsolutePath()+File.separator+"downloads";
return /*download id*/ PRDownloader.download(url, dirPath, fileName)
.build()
.start(new OnDownloadListener() {
@Override
public void onDownloadComplete() {
log("download complete!");
}
@Override
public void onError(Error error) {
log("onError: " +error.toString());
}
});
}
fileName
是文件下载后的存储方式。
dirPath
是存储位置。
如何调用它的示例:
String url = "https://www.your-url.com/files/file.txt"
int downloadId = downloadFile(url);
您可以将文件存储在 getFilesDir()
的内部存储器或 getExternalStorageDirectory()
的外部存储器。
您不需要任何特殊权限即可存储到内部存储器,但用户将无法访问数据。如果用户删除应用程序,它也会被删除。
如果存储在外部存储上,则需要请求用户的许可。他将能够看到这些文件(例如,使用文件浏览器)。
dirPath 是您要保存下载文件的位置的路径
喜欢:"/sdcard/downloads"
您可以像下面的代码一样使用这个库:
downloadID = PRDownloader.download(url,path,"hellow.mp4")
.build()
.setOnStartOrResumeListener(new OnStartOrResumeListener() {
@Override
public void onStartOrResume() {
}
})
.setOnPauseListener(new OnPauseListener() {
@Override
public void onPause() {
}
})
.setOnCancelListener(new OnCancelListener() {
@Override
public void onCancel() {
}
})
.setOnProgressListener(new OnProgressListener() {
@Override
public void onProgress(Progress progress) {
}
})
.start(new OnDownloadListener() {
@Override
public void onDownloadComplete() {
}
@Override
public void onError(Error error) {
}
});
运行上面的代码将开始您的下载
最后使用 downloadId
暂停、恢复或取消特殊下载案例