创建桌面图标和删除桌面图标 android

来源:互联网 发布:小明看看免费域名 编辑:程序博客网 时间:2024/04/25 16:38

第一步:设置文件添加权限:

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

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

第二步:

<activity android:name=".AddShortCutActivity"
            android:label="@string/app_name">
      <intent-filter>
          <action android:name="android.intent.action.MAIN" />
          <category android:name="android.intent.category.LAUNCHER" />
      </intent-filter>
        <intent-filter>
          <action android:name="android.intent.action.CREATE_SHORTCUT"></action>
      </intent-filter>
<intent-filter>
          <action android:name="android.intent.action.UNINSTALL_SHORTCUT"></action>
      </intent-filter>
  </activity>

第三步:

创建图标:

public static void createShortCut(Context context) {
final Intent addIntent = new Intent(
"com.android.launcher.action.INSTALL_SHORTCUT");
final Parcelable icon = Intent.ShortcutIconResource.fromContext(
context, R.drawable.ic_launcher); // 获取快捷键的图标
addIntent.putExtra("duplicate", false);
final Intent myIntent = new Intent();
addIntent.putExtra(Intent.EXTRA_SHORTCUT_NAME,
context.getString(R.string.addnewdiary));// 快捷方式的标题
addIntent.putExtra(Intent.EXTRA_SHORTCUT_ICON_RESOURCE, icon);// 快捷方式的图标
addIntent.putExtra(Intent.EXTRA_SHORTCUT_INTENT, myIntent);// 快捷方式的动作
context.sendBroadcast(addIntent);
}
删除图标
private void delShortcut(Context context) {
Intent shortcut = new Intent(
"com.android.launcher.action.UNINSTALL_SHORTCUT");

// 快捷方式的名称
shortcut.putExtra(Intent.EXTRA_SHORTCUT_NAME,
getString(R.string.app_name));

// 指定当前的Activity为快捷方式启动的对象: 如 com.everest.video.VideoPlayer
// 这里必须为Intent设置一个action,可以任意(但安装和卸载时该参数必须一致)
String action = "com.android.action.test";
// Intent respondIntent = new Intent(context, this.getClass());
// respondIntent.setAction(action);
// shortcut.putExtra(Intent.EXTRA_SHORTCUT_INTENT, respondIntent);

// 下面的方法与上面的效果是一样的,另一种构建形式而已
// 注意: ComponentName的第二个参数必须加上点号(.),否则快捷方式无法启动相应程序
String appClass = getActivity().getApplication().getPackageName() + "."
+ getActivity().getLocalClassName();
ComponentName comp = new ComponentName(getActivity().getApplication()
.getPackageName(), appClass);
shortcut.putExtra(Intent.EXTRA_SHORTCUT_INTENT,
new Intent(action).setComponent(comp));
context.sendBroadcast(shortcut);
}


0 0
原创粉丝点击