0
我想下载视频文件时使用网页视图上的点击按钮,当我点击按钮它开始下载,但当我检查文件管理器里面没有任何内容。这是我的网址http://segoma.com/v.php?type=view&id=U5K8Q4F6DD
,我必须下载视频。所以帮我解决这个问题。 我也检查了很多使用webview下载的方法,但不帮助我。使用webview下载视频文件
我已尝试下面的代码。
public class TestActivity extends Activity {
WebView webView;
String image_url;
@SuppressLint("SetJavaScriptEnabled")
@Override
protected void onCreate(Bundle savedInstanceState) {
super.onCreate(savedInstanceState);
requestWindowFeature(Window.FEATURE_NO_TITLE);
setContentView(R.layout.activity_test);
if (android.os.Build.VERSION.SDK_INT > 14) {
StrictMode.ThreadPolicy policy = new StrictMode.ThreadPolicy.Builder().permitAll().build();
StrictMode.setThreadPolicy(policy);
}
webView = (WebView) findViewById(R.id.webView_certy);
if (ContextCompat.checkSelfPermission(this, Manifest.permission.WRITE_EXTERNAL_STORAGE) != PackageManager.PERMISSION_GRANTED) {
if (ActivityCompat.shouldShowRequestPermissionRationale(this, Manifest.permission.WRITE_EXTERNAL_STORAGE)) {
} else {
ActivityCompat.requestPermissions(this,
new String[]{
Manifest.permission.WRITE_EXTERNAL_STORAGE
}, 23
);
}
}
final String stone_barcodeno = getIntent().getStringExtra("url");
if (stone_barcodeno.equals("")) {
Toast.makeText(this, "No image for this stone", Toast.LENGTH_SHORT).show();
} else {
image_url = stone_barcodeno;
Log.d("1", image_url);
webView.loadUrl(image_url);
webView.setPadding(0, 0, 0, 0);
//webView.setInitialScale(getScale());
webView.getSettings().setBuiltInZoomControls(true);
///=========================
webView.setInitialScale(1);
webView.getSettings().setJavaScriptEnabled(true);
webView.getSettings().setLoadWithOverviewMode(true);
webView.getSettings().setUseWideViewPort(true);
webView.setScrollBarStyle(View.SCROLLBARS_OUTSIDE_OVERLAY);
webView.setScrollbarFadingEnabled(false);
}
/* Defining a button click listener for the Download button */
View.OnClickListener downloadsListener = new View.OnClickListener() {
@Override
public void onClick(View v) {
File direct = new File(Environment.getExternalStorageDirectory() + "/abc");
if (!direct.exists()) {
if (!direct.mkdirs())
Log.w("","Failed to create dir!");
}
DownloadManager mgr = (DownloadManager) getSystemService(Context.DOWNLOAD_SERVICE);
Uri downloadUri = Uri.parse(image_url);
DownloadManager.Request request = new DownloadManager.Request(
downloadUri);
request.setAllowedNetworkTypes(
DownloadManager.Request.NETWORK_WIFI | DownloadManager.Request.NETWORK_MOBILE)
.setAllowedOverRoaming(false).setTitle("abc")
.setDescription("Image certi Downloading...")
.setDestinationInExternalPublicDir("/abc", stone_barcodeno + "_certi" + ".jpg");
mgr.enqueue(request);
Toast.makeText(TestActivity.this, "Image Downloaded Successfully on this Device.", Toast.LENGTH_LONG).show();
}
};
btn_download.setOnClickListener(downloadsListener);
}
}
httphandler.java
HttpHandler parser = new HttpHandler();
updresponse = parser.makePostServiceCall(Static_url.Server_URL_New+""+Static_url.SignUp ,builder,parser.POST);
public class HttpHandler {
static String response = null;
public static final int GET = 1;
public static final int POST = 2;
HttpURLConnection connection = null;
BufferedReader reader = null;
URL url = null;
public HttpHandler(){
}
public String makeGetServiceCall(String reqUrl, int method) {
if (method == GET) {
try {
url = new URL(reqUrl);
connection = (HttpURLConnection) url.openConnection();
connection.setReadTimeout(10000);
connection.setConnectTimeout(50000);
connection.setRequestProperty("Content-Type", "application/x-www-form-urlencoded");
//connection.setRequestProperty("Content-Type", "application/x-www-form-urlencoded");
connection.setRequestMethod("GET");
connection.connect();
int status = connection.getResponseCode();
if (status == 200) {
reader = new BufferedReader(new InputStreamReader(connection.getInputStream()));
StringBuilder builder = new StringBuilder();
String line = "";
while ((line = reader.readLine()) != null) {
builder.append(line);
}
response = builder.toString();
}
} catch (ProtocolException e) {
e.printStackTrace();
} catch (MalformedURLException e) {
e.printStackTrace();
} catch (IOException e) {
e.printStackTrace();
}
}
return response;
}
public String makePostServiceCall(String reqUrl, Uri.Builder params, int method) {
if (method == POST) {
try {
url = new URL(reqUrl);
connection = (HttpURLConnection) url.openConnection();
connection.setRequestProperty("Content-Type", "application/x-www-form-urlencoded");
connection.setReadTimeout(10000);
connection.setConnectTimeout(50000);
connection.setRequestMethod("POST");
connection.setDoInput(true);
connection.setDoOutput(true);
String query = params.build().getEncodedQuery();
BufferedWriter writer = new BufferedWriter(new OutputStreamWriter(connection.getOutputStream()));
writer.write(query);
writer.flush();
writer.close();
connection.connect();
int status = connection.getResponseCode();
if (status == 200) {
reader = new BufferedReader(new InputStreamReader(connection.getInputStream()));
StringBuilder builder = new StringBuilder();
String line = "";
while ((line = reader.readLine()) != null) {
builder.append(line);
}
response = builder.toString();
}else if(status == 400){
response="Invalid";
}else if(status == 500){
response="servererr";
}
} catch (ProtocolException e) {
e.printStackTrace();
} catch (MalformedURLException e) {
e.printStackTrace();
} catch (IOException e) {
e.printStackTrace();
}
}
return response;
}
}
我的问题是视频无法下载.issue不适用于创建目录@ mehranzamani –
您的问题有点含糊。你可以在浏览器中使用复制网址下载它吗?你得到什么类型的错误? –
我没有收到任何错误我想知道为什么下载管理器不适用于我的情况?为什么它不能下载视频? –