Android O添加桌面快捷方式的示例
更新時間:2018年01月16日 08:31:53 作者:Maxiye
本篇文章主要介紹了AndroidO添加桌面快捷方式的示例,小編覺得挺不錯的,現(xiàn)在分享給大家,也給大家做個參考。一起跟隨小編過來看看吧
手機升級到安卓O后,突然發(fā)現(xiàn)創(chuàng)建快捷方式的功能失效了,查詢一番后發(fā)現(xiàn):安卓O要使用ShortcutManager來創(chuàng)建快捷方式。
安卓N及以下版本:
Intent addShortcutIntent = new Intent("com.android.launcher.action.INSTALL_SHORTCUT");//"com.android.launcher.action.INSTALL_SHORTCUT"
// 不允許重復創(chuàng)建
addShortcutIntent.putExtra("duplicate", false);// 經測試不是根據快捷方式的名字判斷重復的
// 應該是根據快鏈的Intent來判斷是否重復的,即Intent.EXTRA_SHORTCUT_INTENT字段的value
// 但是名稱不同時,雖然有的手機系統(tǒng)會顯示Toast提示重復,仍然會建立快鏈
// 屏幕上沒有空間時會提示
// 注意:重復創(chuàng)建的行為MIUI和三星手機上不太一樣,小米上似乎不能重復創(chuàng)建快捷方式
// 名字
addShortcutIntent.putExtra(Intent.EXTRA_SHORTCUT_NAME, "網絡設置");
// 圖標
addShortcutIntent.putExtra(Intent.EXTRA_SHORTCUT_ICON_RESOURCE,
Intent.ShortcutIconResource.fromContext(this, R.drawable.ic_perm_data_setting_black_24dp));
// 設置關聯(lián)程序
Intent launcherIntent = new Intent(Settings.ACTION_DATA_ROAMING_SETTINGS);//設置網絡頁面intent
// 設置關聯(lián)程序
// Intent launcherIntent = new Intent(Intent.ACTION_MAIN);
// launcherIntent.setClass(MainActivity.this, MainActivity.class);
// launcherIntent.addCategory(Intent.CATEGORY_LAUNCHER);
addShortcutIntent.putExtra(Intent.EXTRA_SHORTCUT_INTENT, launcherIntent);
// 發(fā)送廣播
sendBroadcast(addShortcutIntent);
安卓O:
ShortcutManager scm = (ShortcutManager) getSystemService(SHORTCUT_SERVICE);
Intent launcherIntent = new Intent(Settings.ACTION_DATA_ROAMING_SETTINGS);//設置網絡頁面intent
ShortcutInfo si = new ShortcutInfo.Builder(this, "dataroam")
.setIcon(Icon.createWithResource(this, R.drawable.ic_perm_data_setting_black_24dp))
.setShortLabel("網絡設置")
.setIntent(launcherIntent)
.build();
assert scm != null;
scm.requestPinShortcut(si, null);
那如果要兩者兼顧呢,則可以如下這樣寫:
//添加快捷方式
private void addShortcut() {
if (Build.VERSION.SDK_INT >= Build.VERSION_CODES.O) {
ShortcutManager scm = (ShortcutManager) getSystemService(SHORTCUT_SERVICE);
Intent launcherIntent = new Intent(Settings.ACTION_DATA_ROAMING_SETTINGS);//設置網絡頁面intent
ShortcutInfo si = new ShortcutInfo.Builder(this, "dataroam")
.setIcon(Icon.createWithResource(this, R.drawable.ic_perm_data_setting_black_24dp))
.setShortLabel("網絡設置")
.setIntent(launcherIntent)
.build();
assert scm != null;
scm.requestPinShortcut(si, null);
} else {
Intent addShortcutIntent = new Intent("com.android.launcher.action.INSTALL_SHORTCUT");//"com.android.launcher.action.INSTALL_SHORTCUT"
// 不允許重復創(chuàng)建
addShortcutIntent.putExtra("duplicate", false);// 經測試不是根據快捷方式的名字判斷重復的
// 應該是根據快鏈的Intent來判斷是否重復的,即Intent.EXTRA_SHORTCUT_INTENT字段的value
// 但是名稱不同時,雖然有的手機系統(tǒng)會顯示Toast提示重復,仍然會建立快鏈
// 屏幕上沒有空間時會提示
// 注意:重復創(chuàng)建的行為MIUI和三星手機上不太一樣,小米上似乎不能重復創(chuàng)建快捷方式
// 名字
addShortcutIntent.putExtra(Intent.EXTRA_SHORTCUT_NAME, "網絡設置");
// 圖標
addShortcutIntent.putExtra(Intent.EXTRA_SHORTCUT_ICON_RESOURCE,
Intent.ShortcutIconResource.fromContext(this, R.drawable.ic_perm_data_setting_black_24dp));
// 設置關聯(lián)程序
Intent launcherIntent = new Intent(Settings.ACTION_DATA_ROAMING_SETTINGS);//設置網絡頁面intent
// 設置關聯(lián)程序
// Intent launcherIntent = new Intent(Intent.ACTION_MAIN);
// launcherIntent.setClass(MainActivity.this, MainActivity.class);
// launcherIntent.addCategory(Intent.CATEGORY_LAUNCHER);
addShortcutIntent.putExtra(Intent.EXTRA_SHORTCUT_INTENT, launcherIntent);
// 發(fā)送廣播
sendBroadcast(addShortcutIntent);
}
}
以上就是本文的全部內容,希望對大家的學習有所幫助,也希望大家多多支持腳本之家。
相關文章
這篇文章主要介紹了Android 的回調事件的相關資料,相當?shù)脑敿?,有需要的小伙伴可以參考?/div> 2016-08-08
Android實現(xiàn)將應用崩潰信息發(fā)送給開發(fā)者并重啟應用的方法
這篇文章主要介紹了Android實現(xiàn)將應用崩潰信息發(fā)送給開發(fā)者并重啟應用的方法,涉及Android錯誤處理與應用操作的相關技巧,需要的朋友可以參考下2016-03-03最新評論

