日韩性视频-久久久蜜桃-www中文字幕-在线中文字幕av-亚洲欧美一区二区三区四区-撸久久-香蕉视频一区-久久无码精品丰满人妻-国产高潮av-激情福利社-日韩av网址大全-国产精品久久999-日本五十路在线-性欧美在线-久久99精品波多结衣一区-男女午夜免费视频-黑人极品ⅴideos精品欧美棵-人人妻人人澡人人爽精品欧美一区-日韩一区在线看-欧美a级在线免费观看

歡迎訪問 生活随笔!

生活随笔

當前位置: 首頁 > 运维知识 > Android >内容正文

Android

Android 编程下快捷图标的创建

發布時間:2023/12/19 Android 24 豆豆
生活随笔 收集整理的這篇文章主要介紹了 Android 编程下快捷图标的创建 小編覺得挺不錯的,現在分享給大家,幫大家做個參考.

創建快捷圖標的方式

  • 在 Launcher 界面手工添加快捷圖標
  • 通過代碼向 Launcher 中的廣播接收者發送廣播來創建快捷圖標

創建快捷圖標的原理

  • 采用了 Android 系統的廣播機制,發送一個廣播,Android 系統的 Launcher 中的 InstallShortcutReceiver 接收到這個廣播之后,快捷圖標就會被創建。

創建快捷圖標的權限

  • 參見:https://github.com/android/platform_packages_apps_launcher/blob/master/AndroidManifest.xml
<uses-permission android:name="com.android.launcher.permission.INSTALL_SHORTCUT"/><uses-permission android:name="com.android.launcher.permission.READ_SETTINGS"/>

桌面快捷圖標的數據保存在手機的 /data/data/com.android.launcher/databases/launcher.db 中,同時系統對外提供了一個?LauncherProvider 供外界進行訪問。在?launcher.dbfavorites 表中保存了具體的數據,可以通過 LauncherProvider 中的?authorities 加?favorites 的形式來訪問?favorites 表;考慮到程序的兼容性?authorities 的值要根據不同的 SDK 版本來進行設置,在 SDK 版本 2.0 之前?authorities 的值為:com.android.launcher.settings,而在 SDK 2.0 之后?authorities 的值為:com.android.launcher2.settings;具體參考不同 SDK 版本下 Laucher 中的 AndroidManifest.xml,本文中僅提供 2.0 版本之前的?LauncherProvider 配置信息:

<!-- The settings provider contains Home's data, like the workspace favorites --> <providerandroid:name="LauncherProvider"android:authorities="com.android.launcher.settings"android:writePermission="com.android.launcher.permission.WRITE_SETTINGS"android:readPermission="com.android.launcher.permission.READ_SETTINGS" />

創建快捷圖標的實現

文件:MainActivity

package cn.sunzn.cshortcut;import android.app.Activity; import android.content.ComponentName; import android.content.Intent; import android.database.Cursor; import android.net.Uri; import android.os.Bundle; import android.os.Parcelable; import android.view.Menu;public class MainActivity extends Activity {public void onCreate(Bundle savedInstanceState) {super.onCreate(savedInstanceState);setContentView(R.layout.activity_main);createShortCut();}/*** 創建快捷圖標*/private void createShortCut() {// 先判斷該快捷是否存在if (!isExist()) {Intent intent = new Intent();// 指定動作名稱intent.setAction("com.android.launcher.action.INSTALL_SHORTCUT");// 指定快捷方式的圖標Parcelable icon = Intent.ShortcutIconResource.fromContext(this, R.drawable.youtube);intent.putExtra(Intent.EXTRA_SHORTCUT_ICON_RESOURCE, icon);// 指定快捷方式的名稱intent.putExtra(Intent.EXTRA_SHORTCUT_NAME, "YouTube");// 指定快捷圖標激活哪個activityIntent i = new Intent();i.setAction(Intent.ACTION_MAIN);i.addCategory(Intent.CATEGORY_LAUNCHER);ComponentName component = new ComponentName(this, MainActivity.class);i.setComponent(component);intent.putExtra(Intent.EXTRA_SHORTCUT_INTENT, i);sendBroadcast(intent);}}/*** 判斷快捷圖標是否在數據庫中已存在*/private boolean isExist() {boolean isExist = false;int version = getSdkVersion();Uri uri = null;if (version < 2.0) {uri = Uri.parse("content://com.android.launcher.settings/favorites");} else {uri = Uri.parse("content://com.android.launcher2.settings/favorites");}String selection = " title = ?";String[] selectionArgs = new String[] { "YouTube" };Cursor c = getContentResolver().query(uri, null, selection, selectionArgs, null);if (c != null && c.getCount() > 0) {isExist = true;}if (c != null) {c.close();}return isExist;}/*** 得到當前系統SDK版本*/private int getSdkVersion() {return android.os.Build.VERSION.SDK_INT;}public boolean onCreateOptionsMenu(Menu menu) {getMenuInflater().inflate(R.menu.activity_main, menu);return true;}}

文件:AndroidManifest.xml

<manifest xmlns:android="http://schemas.android.com/apk/res/android"package="cn.sunzn.cshortcut"android:versionCode="1"android:versionName="1.0" ><uses-sdkandroid:minSdkVersion="8"android:targetSdkVersion="15" /><uses-permission android:name="com.android.launcher.permission.INSTALL_SHORTCUT"/><uses-permission android:name="com.android.launcher.permission.READ_SETTINGS"/><applicationandroid:icon="@drawable/ic_launcher"android:label="@string/app_name"android:theme="@style/AppTheme" ><activityandroid:name=".MainActivity"android:label="@string/title_activity_main" ><intent-filter><action android:name="android.intent.action.MAIN" /><category android:name="android.intent.category.LAUNCHER" /></intent-filter></activity></application></manifest>

?

轉載于:https://www.cnblogs.com/sunzn/archive/2013/02/12/2910350.html

總結

以上是生活随笔為你收集整理的Android 编程下快捷图标的创建的全部內容,希望文章能夠幫你解決所遇到的問題。

如果覺得生活随笔網站內容還不錯,歡迎將生活随笔推薦給好友。

主站蜘蛛池模板: 女人被狂躁c到高潮 | 亚洲天堂中文字幕在线观看 | 久久精品一日日躁夜夜躁 | 粉嫩aⅴ一区二区三区 | 51ⅴ精品国产91久久久久久 | 国产精品视频一区二区在线观看 | 国产吧在线 | 伊人一区二区三区四区 | 岛国av动作片 | 国产亚洲小视频 | 拍国产真实乱人偷精品 | 国产三级在线免费观看 | 黑人玩弄人妻一区二区绿帽子 | 久久资源总站 | 午夜剧场免费观看 | 欧美日韩亚洲第一 | 无码国产精品一区二区高潮 | 超碰888| 在线黄色网 | 精品小视频在线观看 | 2021天天干| 91你懂的 | 国产在线综合网 | 精品毛片在线观看 | 亚洲精品国产精品国自产观看浪潮 | 强开乳罩摸双乳吃奶羞羞www | 国产成人免费视频网站 | 天堂视频在线免费观看 | 青娱乐av| 91口爆一区二区三区在线 | 欧美日韩啪啪 | 国产美女网站 | 狠狠干夜夜爽 | 天天爱天天爽 | 97影院在线午夜 | 国产又粗又黄又爽视频 | 草草在线免费视频 | 三级成人网 | 色婷婷久久五月综合成人 | 中文字幕在线看高清电影 | 久久成人a毛片免费观看网站 | 久久久精| 黄页网址大全免费观看 | 国产真实交换夫妇视频 | 国产精品免费一区二区三区在线观看 | 成年人网站免费视频 | 久久成人精品视频 | 九九色综合网 | 黑人精品一区二区三区不 | 女人的天堂网站 | 成人第一页 | 久草香蕉在线 | 天堂一级片| 久久久久久久久99 | 96在线观看 | 农村搞破鞋视频大全 | 日韩国产亚洲欧美 | 中文字幕人成人乱码亚洲电影 | av免费亚洲 | 香港三级日本三级韩国三级 | 日韩精品手机在线 | 亚洲射情 | 日本免费网址 | 337p粉嫩大胆噜噜噜亚瑟影院 | youjizz韩国| 亚洲三级一区 | 日韩欧美激情视频 | 国产精品久久久网站 | 欧美不卡| 在线看日韩 | www.夜色 | 久久精品123 | 2024av视频 | 亚洲精品一区二区三区蜜桃 | 欧美精品一区二区三区视频 | 国产中文字幕在线观看 | 久热最新 | 欧美国产日韩一区二区三区 | 久青草视频 | 涩涩综合| 邪恶久久| 亚洲精品美女网站 | jizz性欧美17 | 国产日本一区二区三区 | 五月婷婷开心中文字幕 | 理论片一区 | 6080av| 国产精品啊啊啊 | 91视频免费在线观看 | 欧美另类视频 | 欧美激情在线观看 | 伊人久久大香线蕉综合网站 | a亚洲天堂 | 青青草视频免费观看 | 天天操夜夜操 | 免费看一区二区三区 | 在线观看av日韩 | 成人性生交大片免费看vrv66 | 高清亚洲|