麻豆小视频在线观看_中文黄色一级片_久久久成人精品_成片免费观看视频大全_午夜精品久久久久久久99热浪潮_成人一区二区三区四区

首頁 > 系統 > Android > 正文

Android 創建/驗證/刪除桌面快捷方式(已測試可用)

2020-04-11 12:31:50
字體:
來源:轉載
供稿:網友
測試環境為Adnroid 2.1以上。
第一步:AndroidManifest.xml 權限配置:
添加快捷方式權限:
復制代碼 代碼如下:

<uses-permission android:name="com.android.launcher.permission.INSTALL_SHORTCUT"/>

驗證快捷方式是否存在權限:
復制代碼 代碼如下:

<uses-permission android:name="com.android.launcher.permission.READ_SETTINGS" />

刪除快捷方式權限: 
復制代碼 代碼如下:

<uses-permission android:name="com.android.launcher.permission.UNINSTALL_SHORTCUT" />

代碼:
復制代碼 代碼如下:

public class ShortCutSample {
/**
* 添加快捷方式
* */
public void creatShortCut(Activity activity,String shortcutName,int resourceId)
{
Intent intent = new Intent();
intent.setClass(activity, activity.getClass());
/*以下兩句是為了在卸載應用的時候同時刪除桌面快捷方式*/
intent.setAction("android.intent.action.MAIN");
intent.addCategory("android.intent.category.LAUNCHER");
Intent shortcutintent = new Intent("com.android.launcher.action.INSTALL_SHORTCUT");
//不允許重復創建
shortcutintent.putExtra("duplicate", false);
//需要現實的名稱
shortcutintent.putExtra(Intent.EXTRA_SHORTCUT_NAME, shortcutName);
//快捷圖片
Parcelable icon = Intent.ShortcutIconResource.fromContext(activity.getApplicationContext(), resourceId);
shortcutintent.putExtra(Intent.EXTRA_SHORTCUT_ICON_RESOURCE, icon);
//點擊快捷圖片,運行的程序主入口
shortcutintent.putExtra(Intent.EXTRA_SHORTCUT_INTENT, intent);
//發送廣播。OK
activity.sendBroadcast(shortcutintent);
}
/**
* 刪除快捷方式
* */
public void deleteShortCut(Activity activity,String shortcutName)
{
Intent shortcut = new Intent("com.android.launcher.action.UNINSTALL_SHORTCUT");
//快捷方式的名稱
shortcut.putExtra(Intent.EXTRA_SHORTCUT_NAME,shortcutName);
//在網上看到到的基本都是一下幾句,測試的時候發現并不能刪除快捷方式。
//String appClass = activity.getPackageName()+"."+ activity.getLocalClassName();
//ComponentName comp = new ComponentName( activity.getPackageName(), appClass);
//shortcut.putExtra(Intent.EXTRA_SHORTCUT_INTENT, new Intent(Intent.ACTION_MAIN).setComponent(comp));
/**改成以下方式能夠成功刪除,估計是刪除和創建需要對應才能找到快捷方式并成功刪除**/
Intent intent = new Intent();
intent.setClass(activity, activity.getClass());
intent.setAction("android.intent.action.MAIN");
intent.addCategory("android.intent.category.LAUNCHER");
shortcut.putExtra(Intent.EXTRA_SHORTCUT_INTENT,intent);
activity.sendBroadcast(shortcut);
}
/**
* 判斷是否存在快捷方式
* */
public boolean hasShortcut(Activity activity,String shortcutName)
{
String url = "";
int systemversion = Integer.parseInt(android.os.Build.VERSION.SDK);
/*大于8的時候在com.android.launcher2.settings 里查詢(未測試)*/
if(systemversion < 8){
url = "content://com.android.launcher.settings/favorites?notify=true";
}else{
url = "content://com.android.launcher2.settings/favorites?notify=true";
}
ContentResolver resolver = activity.getContentResolver();
Cursor cursor = resolver.query(Uri.parse(url), null, "title=?",new String[] {shortcutName}, null);
if (cursor != null && cursor.moveToFirst()) {
cursor.close();
return true;
}
return false;
}
}

調用測試代碼:
復制代碼 代碼如下:

 public class mainActivity extends Activity {
/** Called when the activity is first created. */
@Override
public void onCreate(Bundle savedInstanceState) {
super.onCreate(savedInstanceState);
setContentView(R.layout.main);
ShortCutSample sample =new ShortCutSample();
String shortcutName=getString(R.string.app_name);
if(sample.hasShortcut(this, shortcutName))
sample.deleteShortCut(this,shortcutName);
else
sample.creatShortCut(this,shortcutName,R.drawable.icon);
}
}

在網上找了很久都是一樣的代碼,刪除那塊搞了一個下午才弄好,其實很簡單的東東。
第一次發文章,Adnroid新人。多多交流和指導呀。呵呵。
發表評論 共有條評論
用戶名: 密碼:
驗證碼: 匿名發表
主站蜘蛛池模板: 国产超碰人人做人人爱ⅴa 国产精品久久久久久久hd | 曰批全过程40分钟免费视频多人 | 国产一区二区三区在线免费观看 | 久久久久久久国产a∨ | 成人小视频在线播放 | 国产精品一品二区三区四区18 | 大逼逼影院 | 青草久久网 | 成人国产精品一区二区毛片在线 | 久久精品在线免费观看 | 欧美一级淫片免费视频1 | 精品国产九九九 | fc2成人免费人成在线观看播放 | 十级毛片| 鲁丝片一区二区三区免费入口 | 特级a欧美做爰片毛片 | 欧美精品国产综合久久 | 国产精品久久久久久久成人午夜 | 日本中文视频 | 亚洲看片网 | 欧美一级免费高清 | 91精品国产91久久久久久丝袜 | 日本黄色大片免费 | 99riav国产在线观看 | 亚洲网站在线观看 | 4p嗯啊巨肉寝室调教男男视频 | 国产免费一区二区三区网站免费 | 日韩色视频在线观看 | 本站只有精品 | 欧美顶级毛片在线播放小说 | 丰满年轻岳中文字幕一区二区 | 久久精品一区二区三区四区五区 | 久久艳片 | 午夜国内精品a一区二区桃色 | 成人在线观看污 | 欧美日韩在线播放 | 午夜爱爱福利 | 亚洲欧美日韩精品久久 | 国产91对白叫床清晰播放 | 中文字幕在线观看免费视频 | 精品国产欧美一区二区 |