Android桌面快捷方式的设置(一)
2013-07-12 10:13
302 查看
MainActivity如下:
main.xml如下:
package cn.testshortcut; import java.util.List; import android.net.Uri; import android.os.Bundle; import android.text.TextUtils; import android.app.Activity; import android.content.Context; import android.content.Intent; import android.content.pm.PackageInfo; import android.content.pm.PackageManager; import android.content.pm.ProviderInfo; import android.content.pm.PackageManager.NameNotFoundException; import android.database.Cursor; /** * Demo描述: * 桌面快捷方式的设置 * * 备注说明: * 该方式只适合Android原生系统和非原生系统 * * 权限设置: * <uses-permission android:name="com.android.launcher.permission.INSTALL_SHORTCUT" /> * <uses-permission android:name="com.android.launcher.permission.UNINSTALL_SHORTCUT" /> * <uses-permission android:name="com.android.launcher.permission.READ_SETTINGS" /> */ public class MainActivity extends Activity { @Override protected void onCreate(Bundle savedInstanceState) { super.onCreate(savedInstanceState); setContentView(R.layout.main); addShortcutToDesktop(MainActivity.this); } public static void addShortcutToDesktop(Context context) { if (!hasShortcut(context)) { Intent shortcutIntent = new Intent("com.android.launcher.action.INSTALL_SHORTCUT"); shortcutIntent.putExtra("duplicate", false); shortcutIntent.putExtra(Intent.EXTRA_SHORTCUT_NAME,context.getString(R.string.app_name)); shortcutIntent.putExtra(Intent.EXTRA_SHORTCUT_ICON_RESOURCE, Intent.ShortcutIconResource.fromContext(context,R.drawable.ic_launcher)); Intent intent = new Intent(context, MainActivity.class); intent.setAction("android.intent.action.MAIN"); intent.addCategory("android.intent.category.LAUNCHER"); shortcutIntent.putExtra(Intent.EXTRA_SHORTCUT_INTENT, intent); context.sendBroadcast(shortcutIntent); } } private static boolean hasShortcut(Context context) { String AUTHORITY = getAuthorityFromPermission(context,"com.android.launcher.permission.READ_SETTINGS"); System.out.println(" AUTHORITY ..." + AUTHORITY); if (AUTHORITY == null) { return false; } Uri CONTENT_URI = Uri.parse("content://" + AUTHORITY+ "/favorites?notify=true"); String title = ""; final PackageManager packageManager = context.getPackageManager(); try { title = packageManager.getApplicationLabel( packageManager.getApplicationInfo(context.getPackageName(), PackageManager.GET_META_DATA)).toString(); } catch (NameNotFoundException e) { e.printStackTrace(); } Cursor c = context.getContentResolver(). query(CONTENT_URI,new String[] { "title" }, "title=?", new String[] { title },null); if (c != null && c.getCount() > 0) { return true; } return false; } private static String getAuthorityFromPermission(Context context,String permission) { if (TextUtils.isEmpty(permission)) { return null; } List<PackageInfo> packageInfoList = context.getPackageManager().getInstalledPackages(PackageManager.GET_PROVIDERS); if (packageInfoList == null) { return null; } for (PackageInfo packageInfo : packageInfoList) { ProviderInfo[] providerInfos = packageInfo.providers; if (providerInfos != null) { for (ProviderInfo providerInfo : providerInfos) { if (permission.equals(providerInfo.readPermission)|| permission.equals(providerInfo.writePermission)) { return providerInfo.authority; } } } } return null; } }
main.xml如下:
<RelativeLayout xmlns:android="http://schemas.android.com/apk/res/android" xmlns:tools="http://schemas.android.com/tools" android:layout_width="match_parent" android:layout_height="match_parent" > <TextView android:layout_width="wrap_content" android:layout_height="wrap_content" android:text="建立桌面快捷方式" android:layout_centerInParent="true" /> </RelativeLayout>
相关文章推荐
- Android桌面快捷方式的设置(二)
- Android桌面快捷方式的设置(一)
- Android桌面快捷方式的设置(二)
- Android创建桌面快捷方式所遇到的问题与解决方案
- 在Ubuntu 14.04 桌面上设置启动器(快捷方式)
- Android 笔记 快捷方式 / 桌面小组件
- 【Android】添加删除桌面快捷方式
- android判断桌面快捷方式之升级版
- Android程序添加桌面快捷方式
- Android APK安装后不在桌面生成快捷方式图标
- Android创建和删除桌面快捷方式
- Android桌面 快捷方式的删除
- 如何把应用程序的快捷方式(shortcuts)添加到桌面——(开源项目apps-for-android中的AnyCut项目详解)
- Android添加快捷方式(Short)到手机桌面
- Android桌面快捷方式的实现
- android 桌面快捷方式
- Android 发送多个不同的快捷方式(shortcut)到桌面并向其启动的Activity传参
- 【android学习之十七】——特色功能2:桌面组件(快捷方式,实时文件夹)
- Android创建桌面快捷方式并像启动Activity传递参数
- android发送桌面快捷方式