效果图
参考
https://blog.51cto.com/u_16175498/8811197https://blog.51cto.com/u_16175498/8811197
权限
<uses-permission android:name="com.android.launcher.permission.INSTALL_SHORTCUT" />
实现
java
if (Build.VERSION.SDK_INT >= Build.VERSION_CODES.O) {
ShortcutManager shortcutManager = getSystemService(ShortcutManager.class);
if (shortcutManager.isRequestPinShortcutSupported()) {
String title = list_webView.get(currentPage).getTitle();
String url = list_webView.get(currentPage).getUrl();
Bitmap bitmap = list_webView.get(currentPage).getFavicon();
if (bitmap == null)
bitmap = BitmapFactory.decodeResource(getResources(), R.drawable.ic_launcher);
Icon icon = Icon.createWithBitmap(bitmap);
Intent shortcutIntent = new Intent(Intent.ACTION_VIEW, Uri.parse(url));
ShortcutInfo shortcutInfo = new ShortcutInfo.Builder(getApplicationContext(), url)
.setShortLabel(title)
.setLongLabel(title)
.setIcon(icon)
.setIntent(shortcutIntent)
.build();
Intent pinnedShortcutCallbackIntent = shortcutManager.createShortcutResultIntent(shortcutInfo);
PendingIntent successCallback = PendingIntent.getBroadcast(getApplicationContext(), 0, pinnedShortcutCallbackIntent, 0);
shortcutManager.requestPinShortcut(shortcutInfo, successCallback.getIntentSender());
}
} else {
Toast.makeText(getApplicationContext(), "不支持创建快捷方式", Toast.LENGTH_SHORT).show();
}
注意
1.Android O 以上才支持。
2.ShortcutInfo.Builder(getApplicationContext(), id),id不一样才会添加,我直接填网址了。
3.标题太长,添加之前需要编辑一下。