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 –
您的問題有點含糊。你可以在瀏覽器中使用複製網址下載它嗎?你得到什麼類型的錯誤? –
我沒有收到任何錯誤我想知道爲什麼下載管理器不適用於我的情況?爲什麼它不能下載視頻? –