diff --git a/app.apk b/app.apk
index 81bf18d..f2fe5db 100644
Binary files a/app.apk and b/app.apk differ
diff --git a/main/assets/about.htm b/main/assets/about.htm
index 810a8b2..e269293 100644
--- a/main/assets/about.htm
+++ b/main/assets/about.htm
@@ -20,7 +20,7 @@ p { text-indent:2em; }
自动安装apk包
获取网页图标
更新日志:
-V3.12 (2019-02-19)
- 支持跨域。
- 获取网页图标。
+V3.12 (2019-02-25)
- 支持跨域。
- 获取网页图标。
- 屏蔽百度首页视频百度好看跳转下载。
- Android API 19 以上开启调试,运行 adb devices 连接手机,Chrome 浏览器 chrome://inspect 查看。
V3.11 (2019-02-13)
- 链接中的关键字屏蔽、高亮可设置。
V3.10 (2019-02-10)
- 增加:收藏前修改,收藏后修改,修改校验。
V3.9 (2018-12-20)
- 视频独立播放JS读不到iframe里的video,使用跳转iframe代替。
diff --git a/main/java/com/hty/browser/FavoriteActivity.java b/main/java/com/hty/browser/FavoriteActivity.java
index 6d3a0e3..f76f164 100644
--- a/main/java/com/hty/browser/FavoriteActivity.java
+++ b/main/java/com/hty/browser/FavoriteActivity.java
@@ -10,9 +10,11 @@ import android.content.DialogInterface;
import android.content.Intent;
import android.database.Cursor;
import android.database.sqlite.SQLiteDatabase;
-import android.graphics.Color;
-import android.graphics.drawable.ColorDrawable;
+import android.graphics.Bitmap;
+import android.graphics.BitmapFactory;
import android.os.Bundle;
+import android.os.Handler;
+import android.os.Message;
import android.text.Editable;
import android.text.TextWatcher;
import android.util.Log;
@@ -23,160 +25,238 @@ import android.view.View;
import android.view.View.OnCreateContextMenuListener;
import android.view.WindowManager;
import android.view.inputmethod.InputMethodManager;
+import android.webkit.WebIconDatabase;
import android.widget.AdapterView;
import android.widget.AdapterView.AdapterContextMenuInfo;
import android.widget.AdapterView.OnItemClickListener;
import android.widget.EditText;
+import android.widget.ImageButton;
+import android.widget.ImageView;
import android.widget.LinearLayout;
import android.widget.ListView;
import android.widget.SimpleCursorAdapter;
import android.widget.TextView;
import android.widget.Toast;
+import java.io.IOException;
+import java.io.InputStream;
import java.lang.reflect.Field;
+import java.net.HttpURLConnection;
+import java.net.MalformedURLException;
+import java.net.URL;
public class FavoriteActivity extends Activity {
- SimpleCursorAdapter adapter;
- ListView listView;
- EditText editText;
+ SimpleCursorAdapter adapter;
+ ListView listView;
+ EditText editText;
InputMethodManager IMM;
+ ImageButton imageButton_clear;
+ WebIconDatabase WID;
- @Override
- protected void onCreate(Bundle savedInstanceState) {
- super.onCreate(savedInstanceState);
- setContentView(R.layout.activity_favorite);
+ @Override
+ protected void onCreate(Bundle savedInstanceState) {
+ super.onCreate(savedInstanceState);
+ setContentView(R.layout.activity_favorite);
getWindow().setSoftInputMode(WindowManager.LayoutParams.SOFT_INPUT_STATE_HIDDEN);
- editText = (EditText) findViewById(R.id.editText);
+ editText = (EditText) findViewById(R.id.editText);
editText.addTextChangedListener(new EditChangedListener());
listView = (ListView) findViewById(R.id.listView1);
+ imageButton_clear = (ImageButton) findViewById(R.id.imageButton_clear);
+ imageButton_clear.setOnClickListener(new ButtonListener());
+ imageButton_clear.setVisibility(View.GONE);
search(editText.getText().toString());
IMM = (InputMethodManager) getApplicationContext().getSystemService(Context.INPUT_METHOD_SERVICE);
- }
+ WID = WebIconDatabase.getInstance();
+ WID.open(getDir("icons", MODE_PRIVATE).getPath());
+ }
- @Override
- public boolean onContextItemSelected(MenuItem item) {
- AdapterContextMenuInfo menuInfo = (AdapterContextMenuInfo) item.getMenuInfo();
- switch (item.getItemId()) {
- case 0:
- ClipboardManager cm = (ClipboardManager) getSystemService(CLIPBOARD_SERVICE);
- String url = ((TextView) menuInfo.targetView.findViewById(R.id.website)).getText().toString();
- cm.setPrimaryClip(ClipData.newPlainText("link", url));
- Toast.makeText(getApplicationContext(), "链接已复制", Toast.LENGTH_SHORT).show();
- break;
- case 1:
- int id = Integer.parseInt(((TextView) menuInfo.targetView.findViewById(R.id.id)).getText().toString());
- DBHelper helper = new DBHelper(getApplicationContext());
- helper.del(id);
- Cursor c = helper.query(editText.getText().toString());
- String[] from = { "_id", "title", "website" };
- int[] to = { R.id.id, R.id.title, R.id.website };
- adapter = new SimpleCursorAdapter(this, R.layout.favorite_row, c, from, to, 0);
- listView.setAdapter(adapter);
- break;
- case 2:
- final String sid = ((TextView) menuInfo.targetView.findViewById(R.id.id)).getText().toString();
- final String stitle = ((TextView) menuInfo.targetView.findViewById(R.id.title)).getText().toString();
- final String surl = ((TextView) menuInfo.targetView.findViewById(R.id.website)).getText().toString();
- LinearLayout layout = new LinearLayout(FavoriteActivity.this);
- layout.setOrientation(LinearLayout.VERTICAL);
- final EditText ET_title = new EditText(FavoriteActivity.this);
- ET_title.setHint("标题");
- ET_title.setText(stitle);
- layout.addView(ET_title);
- final EditText ET_url = new EditText(FavoriteActivity.this);
- ET_title.setHint("网址");
- ET_url.setText(surl);
- layout.addView(ET_url);
- AlertDialog.Builder builder = new AlertDialog.Builder(FavoriteActivity.this);
- builder.setIcon(android.R.drawable.btn_star_big_on);
- builder.setTitle("修改收藏");
- builder.setView(layout);
- builder.setPositiveButton("确定", new DialogInterface.OnClickListener() {
- @Override
- public void onClick(DialogInterface dialog, int which) {
- String stitle = ET_title.getText().toString();
- String surl = ET_url.getText().toString();
- Field field = null;
- try {
- //通过反射获取dialog中的私有属性mShowing
- field = dialog.getClass().getSuperclass().getDeclaredField("mShowing");
- field.setAccessible(true);//设置该属性可以访问
- } catch (Exception ex) {
+ class ButtonListener implements View.OnClickListener {
+ @Override
+ public void onClick(View v) {
+ switch (v.getId()) {
+ case R.id.imageButton_clear:
+ editText.setText("");
+ break;
+ }
+ }
+ }
- }
- if (!stitle.equals("") && surl.startsWith("http")) {
- DBHelper dbHelper = new DBHelper(getApplicationContext());
- SQLiteDatabase db = dbHelper.getWritableDatabase();
- ContentValues values = new ContentValues();
- values.put("website", surl);
- values.put("title", stitle);
- db.update(DBHelper.TableName, values, "_id = " + sid, null);
- IMM.hideSoftInputFromWindow(ET_title.getWindowToken(), 0);
- Cursor c = dbHelper.query(editText.getText().toString());
- String[] from = { "_id", "title", "website" };
- int[] to = { R.id.id, R.id.title, R.id.website };
- adapter = new SimpleCursorAdapter(FavoriteActivity.this, R.layout.favorite_row, c, from, to, 0);
- listView.setAdapter(adapter);
+ @Override
+ public boolean onContextItemSelected(MenuItem item) {
+ AdapterContextMenuInfo menuInfo = (AdapterContextMenuInfo) item.getMenuInfo();
+ switch (item.getItemId()) {
+ case 0:
+ ClipboardManager cm = (ClipboardManager) getSystemService(CLIPBOARD_SERVICE);
+ String url = ((TextView) menuInfo.targetView.findViewById(R.id.website)).getText().toString();
+ cm.setPrimaryClip(ClipData.newPlainText("link", url));
+ Toast.makeText(getApplicationContext(), "链接已复制", Toast.LENGTH_SHORT).show();
+ break;
+ case 1:
+ int id = Integer.parseInt(((TextView) menuInfo.targetView.findViewById(R.id.id)).getText().toString());
+ DBHelper helper = new DBHelper(getApplicationContext());
+ helper.del(id);
+ search(editText.getText().toString());
+ break;
+ case 2:
+ final String sid = ((TextView) menuInfo.targetView.findViewById(R.id.id)).getText().toString();
+ final String stitle = ((TextView) menuInfo.targetView.findViewById(R.id.title)).getText().toString();
+ final String surl = ((TextView) menuInfo.targetView.findViewById(R.id.website)).getText().toString();
+ LinearLayout layout = new LinearLayout(FavoriteActivity.this);
+ layout.setOrientation(LinearLayout.VERTICAL);
+ final EditText ET_title = new EditText(FavoriteActivity.this);
+ ET_title.setHint("标题");
+ ET_title.setText(stitle);
+ layout.addView(ET_title);
+ final EditText ET_url = new EditText(FavoriteActivity.this);
+ ET_title.setHint("网址");
+ ET_url.setText(surl);
+ layout.addView(ET_url);
+ AlertDialog.Builder builder = new AlertDialog.Builder(FavoriteActivity.this);
+ builder.setIcon(android.R.drawable.btn_star_big_on);
+ builder.setTitle("修改收藏");
+ builder.setView(layout);
+ builder.setPositiveButton("确定", new DialogInterface.OnClickListener() {
+ @Override
+ public void onClick(DialogInterface dialog, int which) {
+ String stitle = ET_title.getText().toString();
+ String surl = ET_url.getText().toString();
+ Field field = null;
+ try {
+ //通过反射获取dialog中的私有属性mShowing
+ field = dialog.getClass().getSuperclass().getDeclaredField("mShowing");
+ field.setAccessible(true);//设置该属性可以访问
+ } catch (Exception ex) {
+
+ }
+ if (!stitle.equals("") && (surl.startsWith("http") || !surl.startsWith("file:///"))) {
+ DBHelper dbHelper = new DBHelper(getApplicationContext());
+ SQLiteDatabase db = dbHelper.getWritableDatabase();
+ ContentValues values = new ContentValues();
+ values.put("website", surl);
+ values.put("title", stitle);
+ db.update(DBHelper.TableName, values, "_id = " + sid, null);
+ IMM.hideSoftInputFromWindow(ET_title.getWindowToken(), 0);
+ search(editText.getText().toString());
+ try {
+ //关闭
+ field.set(dialog, true);
+ dialog.dismiss();
+ } catch (Exception ex) {
+ }
+ } else {
+ if (stitle.equals("")){
+ ET_title.setError("标题不能为空!");
+ }
+ if (!surl.startsWith("http") || !surl.startsWith("file:///")){
+ ET_url.setError("网址错误!");
+ }
+ try {
+ //设置dialog不可关闭
+ field.set(dialog, false);
+ dialog.dismiss();
+ } catch (Exception ex) {
+ }
+ }
+ }
+ });
+ builder.setNegativeButton("取消", new DialogInterface.OnClickListener() {
+ @Override
+ public void onClick(DialogInterface dialog, int which) {
+ IMM.hideSoftInputFromWindow(ET_title.getWindowToken(), 0);
+ Field field = null;
+ try {
+ //通过反射获取dialog中的私有属性mShowing
+ field = dialog.getClass().getSuperclass().getDeclaredField("mShowing");
+ field.setAccessible(true);//设置该属性可以访问
+ } catch (Exception ex) {
+ }
try {
- //关闭
field.set(dialog, true);
dialog.dismiss();
} catch (Exception ex) {
}
- } else {
- if (stitle.equals("")){
- ET_title.setError("标题不能为空!");
- }
- if (!surl.startsWith("http")){
- ET_url.setError("网址错误!");
- }
- try {
- //设置dialog不可关闭
- field.set(dialog, false);
- dialog.dismiss();
- } catch (Exception ex) {
- }
}
- }
- });
- builder.setNegativeButton("取消", new DialogInterface.OnClickListener() {
- @Override
- public void onClick(DialogInterface dialog, int which) {
- IMM.hideSoftInputFromWindow(ET_title.getWindowToken(), 0);
- Field field = null;
- try {
- //通过反射获取dialog中的私有属性mShowing
- field = dialog.getClass().getSuperclass().getDeclaredField("mShowing");
- field.setAccessible(true);//设置该属性可以访问
- } catch (Exception ex) {
- }
- try {
- field.set(dialog, true);
- dialog.dismiss();
- } catch (Exception ex) {
- }
- }
- });
- builder.create().show();
- break;
- }
- return true;
- }
+ });
+ builder.create().show();
+ break;
+ }
+ return true;
+ }
- public void favback(View v) {
+ public void favback(View v) {
IMM.hideSoftInputFromWindow(editText.getWindowToken(), 0);
- finish();
- }
+ finish();
+ }
- void search(String s) {
+ void search(String s) {
DBHelper helper = new DBHelper(this);
Cursor c = helper.query(s);
- String[] from = { "_id", "title", "website" };
- int[] to = { R.id.id, R.id.title, R.id.website };
+ String[] from = { "_id", "title", "website", "website" };
+ int[] to = { R.id.id, R.id.title, R.id.website, R.id.imageView_favicon };
adapter = new SimpleCursorAdapter(this, R.layout.favorite_row, c, from, to, 0);
+ adapter.setViewBinder(new SimpleCursorAdapter.ViewBinder(){
+ public boolean setViewValue(View view, Cursor cursor, int columnIndex){
+ //Log.e("L192", view.toString() + columnIndex);
+ if(view.getId() == R.id.imageView_favicon){
+ String website = cursor.getString(columnIndex);
+ // if (website.startsWith("https://")) {
+ // //((ImageView) view).setImageResource(android.R.drawable.ic_secure);
+ // Runner1 r1 = new Runner1();
+ // r1.setUrl("https://static.easyicon.net/preview/52/523893.gif");
+ // r1.setView(view);
+ // Thread thread1 = new Thread(r1);
+ // thread1.start();
+ // return true;
+ // } else if (website.startsWith("http://")) {
+ // // ((ImageView) view).setImageResource(android.R.drawable.ic_partial_secure);
+ // Runner1 r1 = new Runner1();
+ // r1.setUrl("https://static.easyicon.net/preview/1/11847.gif");
+ // r1.setView(view);
+ // Thread thread1 = new Thread(r1);
+ // thread1.start();
+ // return true;
+ // } else {
+ // ((ImageView) view).setImageResource(R.drawable.network);
+ // return true;
+ // }
+ Runner1 r1 = new Runner1();
+ r1.setUrl(website);
+ r1.setView(view);
+ Thread thread1 = new Thread(r1);
+ thread1.start();
+ return true;
+ }
+ return false;
+ }
+ });
listView.setAdapter(adapter);
- listView.setDivider(new ColorDrawable(Color.GREEN));
- listView.setDividerHeight(2);
+
+ // WebIconDatabase WID = WebIconDatabase.getInstance();
+ // WID.open(getDir("icons", MODE_PRIVATE).getPath());
+ // for (int i=0; i arg0, View arg1, int arg2, long arg3) {
@@ -200,6 +280,7 @@ public class FavoriteActivity extends Activity {
menu.add(0, 2, 2, "修改");
}
});
+
}
class EditChangedListener implements TextWatcher {
@@ -216,8 +297,81 @@ public class FavoriteActivity extends Activity {
@Override
public void afterTextChanged(Editable s) {
- search(s.toString());
+ if(s.toString().equals("")){
+ imageButton_clear.setVisibility(View.GONE);
+ }else{
+ imageButton_clear.setVisibility(View.VISIBLE);
+ }
+ search(s.toString());
}
}
-}
+ public Bitmap webBitMap(String surl) {
+ URL url = null;
+ Bitmap bitmap = null;
+ try {
+ url = new URL(surl);
+ } catch (MalformedURLException e) {
+ e.printStackTrace();
+ }
+ try {
+ HttpURLConnection conn = (HttpURLConnection) url.openConnection();
+ conn.setDoInput(true);
+ conn.connect();
+ InputStream IS = conn.getInputStream();
+ bitmap = BitmapFactory.decodeStream(IS);
+ IS.close();
+ } catch (IOException e) {
+ e.printStackTrace();
+ }
+ return bitmap;
+ }
+
+ class Runner1 implements Runnable {
+ private String surl;
+ private View view;
+
+ private void setUrl(String surl1) {
+ surl = surl1;
+ }
+
+ private void setView(View view1) {
+ view = view1;
+ }
+
+ public void run() {
+ // Bitmap bitmap = webBitMap(surl);
+ // Message msg = new Message();
+ // Bundle bundle = new Bundle();
+ // bundle.putParcelable("bitmap", bitmap);
+ // msg.setData(bundle);
+ // msg.obj = view;
+ // handler.sendMessage(msg);
+ Log.e("L350", surl);
+ WID.requestIconForPageUrl(surl, new WebIconDatabase.IconListener() {
+ public void onReceivedIcon(String url, Bitmap icon) {
+ Log.e("L353", url);
+ Message msg = new Message();
+ Bundle bundle = new Bundle();
+ bundle.putParcelable("bitmap", icon);
+ msg.setData(bundle);
+ msg.obj = view;
+ handler.sendMessage(msg);
+ }
+ });
+ }
+ }
+
+ static Handler handler = new Handler(){
+ @Override
+ public void handleMessage(Message msg) {
+ super.handleMessage(msg);
+ Bundle bundle = msg.getData();
+ Bitmap bitmap = bundle.getParcelable("bitmap");
+ View view = (View) msg.obj;
+ Log.e("L372", "setIcon");
+ ((ImageView) view).setImageBitmap(bitmap);
+ }
+ };
+
+}
\ No newline at end of file
diff --git a/main/java/com/hty/browser/MainActivity.java b/main/java/com/hty/browser/MainActivity.java
index d320c3d..6225927 100644
--- a/main/java/com/hty/browser/MainActivity.java
+++ b/main/java/com/hty/browser/MainActivity.java
@@ -41,6 +41,7 @@ import android.net.ConnectivityManager;
import android.net.NetworkInfo;
import android.net.Uri;
import android.os.AsyncTask;
+import android.os.Build;
import android.os.Bundle;
import android.os.Environment;
import android.os.Looper;
@@ -165,7 +166,7 @@ public class MainActivity extends Activity {
findClose.setOnClickListener(new ButtonListener());
editText1 = (EditText) findViewById(R.id.EditText1);
webView1 = (WebView) findViewById(R.id.WebView1);
- WebIconDatabase.getInstance().open(getDir("icons", MODE_PRIVATE).getPath()); //获取favicon图标路径
+ WebIconDatabase.getInstance().open(getDir("icons", MODE_PRIVATE).getPath()); //获取图标数据库路径
registerForContextMenu(webView1);
// 开启JS
webView1.getSettings().setJavaScriptEnabled(true);
@@ -196,13 +197,17 @@ public class MainActivity extends Activity {
webView1.requestFocusFromTouch();
// 允许跨域
webView1.getSettings().setAllowUniversalAccessFromFileURLs(true);
+ // 允许调试
+ if(Build.VERSION.SDK_INT >= 19) {
+ webView1.setWebContentsDebuggingEnabled(true);
+ }
webView1.setWebViewClient(new WebViewClient() {
@Override
public boolean shouldOverrideUrlLoading(WebView view, String url) {
Log.e("OverrideUrlLoading", url);
// 协议过滤
- if(url.startsWith("http")){
+ if(url.startsWith("http") && !url.startsWith("https://cdn-haokanapk.baidu.com/")){
view.loadUrl(url);
}
/*
@@ -220,13 +225,16 @@ public class MainActivity extends Activity {
@Override
public void onPageStarted(WebView view, String url, Bitmap favicon) {
- super.onPageStarted(view, url, favicon);
+ //super.onPageStarted(view, url, favicon);
editText1.setText(url);
urln = url;
btnBack.setEnabled(true);
IMM.hideSoftInputFromWindow(editText1.getWindowToken(), 0);
pgb1.setVisibility(View.VISIBLE);
imageButton_info.setImageResource(android.R.drawable.ic_menu_info_details);
+// if(favicon != null) {
+// imageButton_info.setImageBitmap(favicon);
+// }
}
@Override
@@ -318,10 +326,7 @@ public class MainActivity extends Activity {
// 接收网站图标(favicon)
public void onReceivedIcon(WebView view, Bitmap icon) {
- Matrix matrix = new Matrix();
- matrix.postScale((float)60 / icon.getWidth(), (float)60 / icon.getHeight());
- Bitmap bitmap = Bitmap.createBitmap(icon, 0, 0, icon.getWidth(), icon.getHeight(), matrix, true);
- imageButton_info.setImageBitmap(bitmap);
+ imageButton_info.setImageBitmap(icon);
}
// 播放网络视频时全屏会被调用的方法
@@ -552,7 +557,6 @@ public class MainActivity extends Activity {
@Override
public void onDownloadStart(String url, String userAgent, String contentDisposition, String mimetype, long contentLength) {
Log.e("Download", url);
- //if(!url.contains("baidu.com"))
downloadBySystem(url, "", "");
}
}
@@ -563,16 +567,19 @@ public class MainActivity extends Activity {
WebView w = (WebView) v;
HitTestResult result = w.getHitTestResult();
HTRE = result.getExtra();
+ menu.setHeaderIcon(android.R.drawable.ic_menu_report_image);
menu.setHeaderTitle(HTRE);
if (result.getType() == HitTestResult.IMAGE_TYPE || result.getType() == HitTestResult.SRC_IMAGE_ANCHOR_TYPE) {
+ menu.setHeaderIcon(android.R.drawable.ic_menu_gallery); // Context menu items do not support icons
menu.add(0, 0, 0, "查看图片");
menu.add(0, 1, 1, "复制图片");
- menu.add(0, 2, 2, "保存图片");
+ menu.add(0, 2, 2, "保存图片").setIcon(android.R.drawable.ic_menu_save); // Context menu items do not support icons
menu.add(0, 3, 3, "复制链接");
menu.add(0, 4, 4, "屏蔽图片");
menu.add(0, 5, 5, "隐藏图片");
}
if (result.getType() == HitTestResult.SRC_ANCHOR_TYPE) {
+ menu.setHeaderIcon(android.R.drawable.ic_menu_sort_alphabetically);
menu.add(0, 2, 2, "下载");
menu.add(0, 3, 3, "复制链接");
}
@@ -806,7 +813,8 @@ public class MainActivity extends Activity {
Matrix matrix = new Matrix();
matrix.postScale((float)100/icon.getWidth(), (float)100/icon.getHeight());
Bitmap bitmap = Bitmap.createBitmap(icon, 0, 0, icon.getWidth(), icon.getHeight(), matrix, true);
- builder.setIcon(new BitmapDrawable(getResources(), bitmap));
+ BitmapDrawable drawable = new BitmapDrawable(getResources(), bitmap);
+ builder.setIcon(drawable);
builder.setTitle("添加收藏");
builder.setView(layout);
builder.setPositiveButton("确定", new DialogInterface.OnClickListener() {
@@ -822,7 +830,7 @@ public class MainActivity extends Activity {
} catch (Exception ex) {
}
- if (!stitle.equals("") && surl.startsWith("http")) {
+ if (!stitle.equals("") && (surl.startsWith("http") || surl.startsWith("file:///"))) {
DBHelper helper = new DBHelper(getApplicationContext());
Cursor c = helper.query(surl);
if (c.getCount() == 0) {
@@ -844,7 +852,7 @@ public class MainActivity extends Activity {
if (stitle.equals("")){
ET_title.setError("标题不能为空!");
}
- if (!surl.startsWith("http")){
+ if (!surl.startsWith("http") || !surl.startsWith("file:///")){
ET_url.setError("网址错误!");
}
try {
@@ -1106,9 +1114,9 @@ public class MainActivity extends Activity {
}
// 调用系统下载,https://www.jianshu.com/p/6e38e1ef203a
- private void downloadBySystem(String url, String contentDisposition, String mimeType) {
+ private void downloadBySystem(String surl, String contentDisposition, String mimeType) {
// 指定下载地址
- DownloadManager.Request request = new DownloadManager.Request(Uri.parse(url));
+ DownloadManager.Request request = new DownloadManager.Request(Uri.parse(surl));
// 允许媒体扫描,根据下载的文件类型被加入相册、音乐等媒体库
request.allowScanningByMediaScanner();
// 设置通知的显示类型,下载进行时和完成后显示通知
@@ -1116,27 +1124,27 @@ public class MainActivity extends Activity {
// 设置通知栏的标题,如果不设置,默认使用文件名
// request.setTitle("This is title");
// 设置通知栏的描述
- // request.setDescription("This is description");
+ request.setDescription(surl);
// 允许在计费流量下下载
request.setAllowedOverMetered(false);
// 允许该记录在下载管理界面可见
- request.setVisibleInDownloadsUi(true);
+ //request.setVisibleInDownloadsUi(true);
// 允许漫游时下载
request.setAllowedOverRoaming(true);
// 允许下载的网路类型
request.setAllowedNetworkTypes(DownloadManager.Request.NETWORK_WIFI);
// 设置下载文件保存的路径和文件名
- String fileName = URLUtil.guessFileName(url, contentDisposition, mimeType);
+ String fileName = URLUtil.guessFileName(surl, contentDisposition, mimeType);
Log.e("fileName:", fileName);
request.setDestinationInExternalPublicDir(Environment.DIRECTORY_DOWNLOADS, fileName);
// 自定义下载路径
- // request.setDestinationUri()
- // request.setDestinationInExternalFilesDir()
+ //request.setDestinationUri();
+ //request.setDestinationInExternalFilesDir();
DownloadManager downloadManager = (DownloadManager) getSystemService(DOWNLOAD_SERVICE);
// 添加一个下载任务
long downloadId = downloadManager.enqueue(request);
Log.e("downloadId:", downloadId+"");
- if(url == urlUpdate){
+ if(surl == urlUpdate){
downloadIdUpdate = downloadId;
}
}
diff --git a/main/res/layout/activity_favorite.xml b/main/res/layout/activity_favorite.xml
index c14ecb9..b9677f3 100644
--- a/main/res/layout/activity_favorite.xml
+++ b/main/res/layout/activity_favorite.xml
@@ -1,6 +1,7 @@
-
+
-
+ android:gravity="center"
+ android:orientation="horizontal"
+ android:paddingLeft="10dp"
+ android:paddingRight="10dp">
+
+
+
+
+
+ android:layout_height="wrap_content"
+ android:divider="#ccc"
+ android:dividerHeight="1dp"
+ android:paddingLeft="10dp"
+ android:paddingRight="10dp">
+
+
+
\ No newline at end of file
diff --git a/main/res/layout/activity_main.xml b/main/res/layout/activity_main.xml
index c77dddd..a44048c 100644
--- a/main/res/layout/activity_main.xml
+++ b/main/res/layout/activity_main.xml
@@ -44,11 +44,10 @@
+ xmlns:app="http://schemas.android.com/apk/res-auto"
+ xmlns:tools="http://schemas.android.com/tools"
+ android:id="@+id/LinearLayout1"
+ android:layout_width="match_parent"
+ android:layout_height="wrap_content"
+ android:gravity="center"
+ android:paddingLeft="5dp"
+ android:paddingRight="5dp">
-
+
-
+ android:layout_weight="5"
+ android:orientation="vertical">
-
+
+
+
+
+
+
+
\ No newline at end of file