添加到桌面:先编辑,增加图标
This commit is contained in:
parent
ebaeadfb2d
commit
07ec466136
|
@ -144,7 +144,7 @@ public class MainActivity extends Activity {
|
|||
super.onCreate(savedInstanceState);
|
||||
if (Build.VERSION.SDK_INT >= Build.VERSION_CODES.M) {
|
||||
//Log.e(Thread.currentThread().getStackTrace()[2] + "", "checkSelfPermission: " + checkSelfPermission(Manifest.permission.WRITE_EXTERNAL_STORAGE));
|
||||
if (checkSelfPermission(Manifest.permission.READ_EXTERNAL_STORAGE) != PackageManager.PERMISSION_GRANTED && checkSelfPermission(Manifest.permission.WRITE_EXTERNAL_STORAGE) != PackageManager.PERMISSION_GRANTED) {
|
||||
if (checkSelfPermission(Manifest.permission.READ_EXTERNAL_STORAGE) != PackageManager.PERMISSION_GRANTED && checkSelfPermission(Manifest.permission.WRITE_EXTERNAL_STORAGE) != PackageManager.PERMISSION_GRANTED && checkSelfPermission(Manifest.permission.INSTALL_SHORTCUT) != PackageManager.PERMISSION_GRANTED) {
|
||||
requestPermissions(PERMISSIONS, REQUEST_PERMISSION_CODE);
|
||||
}
|
||||
}
|
||||
|
@ -759,12 +759,12 @@ public class MainActivity extends Activity {
|
|||
spinner.setAdapter(adapter);
|
||||
layout.addView(spinner);
|
||||
AlertDialog.Builder builder = new AlertDialog.Builder(MainActivity.this);
|
||||
Bitmap icon = list_webView.get(currentPage).getFavicon();
|
||||
if (icon == null)
|
||||
icon = BitmapFactory.decodeResource(getResources(), R.drawable.network);
|
||||
Bitmap bitmap = list_webView.get(currentPage).getFavicon();
|
||||
if (bitmap == null)
|
||||
bitmap = BitmapFactory.decodeResource(getResources(), R.drawable.network);
|
||||
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);
|
||||
matrix.postScale((float)100/bitmap.getWidth(), (float)100/bitmap.getHeight());
|
||||
bitmap = Bitmap.createBitmap(bitmap, 0, 0, bitmap.getWidth(), bitmap.getHeight(), matrix, true);
|
||||
BitmapDrawable drawable = new BitmapDrawable(getResources(), bitmap);
|
||||
builder.setIcon(drawable);
|
||||
builder.setTitle("添加收藏");
|
||||
|
@ -1002,21 +1002,100 @@ public class MainActivity extends Activity {
|
|||
break;
|
||||
case 22:
|
||||
if (Build.VERSION.SDK_INT >= Build.VERSION_CODES.O) {
|
||||
ShortcutManager shortcutManager = getSystemService(ShortcutManager.class);
|
||||
if (shortcutManager.isRequestPinShortcutSupported()) {
|
||||
String url = list_webView.get(currentPage).getUrl();
|
||||
String title = list_webView.get(currentPage).getTitle();
|
||||
Intent shortcutIntent = new Intent(Intent.ACTION_VIEW, Uri.parse(url));
|
||||
ShortcutInfo shortcutInfo = new ShortcutInfo.Builder(getApplicationContext(), url)
|
||||
.setShortLabel(title)
|
||||
.setLongLabel(title)
|
||||
.setIcon(Icon.createWithResource(getApplicationContext(), R.drawable.ic_launcher))
|
||||
.setIntent(shortcutIntent)
|
||||
.build();
|
||||
Intent pinnedShortcutCallbackIntent = shortcutManager.createShortcutResultIntent(shortcutInfo);
|
||||
PendingIntent successCallback = PendingIntent.getBroadcast(getApplicationContext(), 0, pinnedShortcutCallbackIntent, 0);
|
||||
shortcutManager.requestPinShortcut(shortcutInfo, successCallback.getIntentSender());
|
||||
}
|
||||
layout = new LinearLayout(MainActivity.this);
|
||||
layout.setOrientation(LinearLayout.VERTICAL);
|
||||
final EditText editText_title1 = new EditText(MainActivity.this);
|
||||
editText_title1.setHint("标题");
|
||||
editText_title1.setMaxLines(1);
|
||||
editText_title1.setText(list_webView.get(currentPage).getTitle());
|
||||
layout.addView(editText_title1);
|
||||
final EditText editText_url1 = new EditText(MainActivity.this);
|
||||
editText_url1.setMaxLines(5);
|
||||
editText_url1.setHint("网址");
|
||||
editText_url1.setText(list_webView.get(currentPage).getUrl());
|
||||
layout.addView(editText_url1);
|
||||
builder = new AlertDialog.Builder(MainActivity.this);
|
||||
bitmap = list_webView.get(currentPage).getFavicon();
|
||||
if (bitmap == null)
|
||||
bitmap = BitmapFactory.decodeResource(getResources(), R.drawable.ic_launcher);
|
||||
//Matrix matrix = new Matrix();
|
||||
//matrix.postScale((float)100/icon.getWidth(), (float)100/icon.getHeight());
|
||||
//bitmap = Bitmap.createBitmap(bitmap, 0, 0, icon1.getWidth(), icon.getHeight(), matrix, true);
|
||||
drawable = new BitmapDrawable(getResources(), bitmap);
|
||||
final Icon icon = Icon.createWithBitmap(bitmap);
|
||||
builder.setIcon(drawable);
|
||||
builder.setTitle("添加到桌面");
|
||||
builder.setView(layout);
|
||||
builder.setPositiveButton("确定", new DialogInterface.OnClickListener() {
|
||||
@Override
|
||||
public void onClick(DialogInterface dialog, int which) {
|
||||
String stitle = editText_title1.getText().toString();
|
||||
String surl = editText_url1.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:///"))) {
|
||||
ShortcutManager shortcutManager = getSystemService(ShortcutManager.class);
|
||||
if (shortcutManager.isRequestPinShortcutSupported()) {
|
||||
Intent shortcutIntent = new Intent(Intent.ACTION_VIEW, Uri.parse(surl));
|
||||
ShortcutInfo shortcutInfo = new ShortcutInfo.Builder(getApplicationContext(), surl)
|
||||
.setShortLabel(stitle)
|
||||
.setLongLabel(stitle)
|
||||
//.setIcon(Icon.createWithResource(getApplicationContext(), R.drawable.ic_launcher))
|
||||
.setIcon(icon)
|
||||
.setIntent(shortcutIntent)
|
||||
.build();
|
||||
Intent pinnedShortcutCallbackIntent = shortcutManager.createShortcutResultIntent(shortcutInfo);
|
||||
PendingIntent successCallback = PendingIntent.getBroadcast(getApplicationContext(), 0, pinnedShortcutCallbackIntent, 0);
|
||||
shortcutManager.requestPinShortcut(shortcutInfo, successCallback.getIntentSender());
|
||||
}
|
||||
IMM.hideSoftInputFromWindow(editText_title1.getWindowToken(), 0);
|
||||
try {
|
||||
//关闭
|
||||
field.set(dialog, true);
|
||||
dialog.dismiss();
|
||||
} catch (Exception ex) {
|
||||
}
|
||||
} else {
|
||||
if (stitle.equals("")){
|
||||
editText_title1.setError("标题不能为空!");
|
||||
}
|
||||
if (!surl.startsWith("http://") || !surl.startsWith("https://") || !surl.startsWith("file://")) {
|
||||
editText_url1.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(editText_title1.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();
|
||||
} else {
|
||||
Toast.makeText(getApplicationContext(), "不支持创建快捷方式", Toast.LENGTH_SHORT).show();
|
||||
}
|
||||
|
|
Loading…
Reference in New Issue