Android桌面快捷方式的设置(二)

MainActivity如下:

package cn.testshortcut;

import android.net.Uri;
import android.os.Build;
import android.os.Bundle;
import android.app.Activity;
import android.content.ContentResolver;
import android.content.Context;
import android.content.Intent;
import android.content.pm.PackageManager;
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" />
 */
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 (!isShortcutExist(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);
		}
	}

	public static boolean isShortcutExist(Context context) {
		ContentResolver contentResolver = context.getContentResolver();
		String AUTHORITY = null;
		if (Build.VERSION.SDK_INT >= 8) {
			AUTHORITY = "com.android.launcher2.settings";
		} else {
			AUTHORITY = "com.android.launcher.settings";
		}

		String title = "";
		PackageManager packageManager = context.getPackageManager();
		try {
			title = packageManager.getApplicationLabel(
					packageManager.getApplicationInfo(context.getPackageName(),
					PackageManager.GET_META_DATA)).toString();
		} catch (NameNotFoundException e) {
			e.printStackTrace();
		}

		Uri uri = Uri.parse("content://" + AUTHORITY + "/favorites?notify=true");
		Cursor cursor = contentResolver.query(uri, null,"title=?", new String[] { title },null);
		if (cursor != null && cursor.getCount() > 0) {
			return true;
		}
		return false;
	}

}

 

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>

 

时间: 2024-07-30 20:38:22

Android桌面快捷方式的设置(二)的相关文章

Android桌面快捷方式的设置(一)

MainActivity如下: 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 androi

使用程序创建Android桌面快捷方式

下面是使用程序创建Android桌面快捷方式的实例代码: public static void addShortcut(Context context) { String ACTION_INSTALL_SHORTCUT = "com.android.launcher.action.INSTALL_SHORTCUT"; // 快捷方式要启动的包 Intent intent = gotoWhere(context); // 设置快捷方式的参数 Intent shortcutIntent =

背景设置-android桌面开发如何设置系统内置动态壁纸

问题描述 android桌面开发如何设置系统内置动态壁纸 急!!! 我自己编写了一个android桌面,添加壁纸设置功能,调用系统壁纸选择器后,设置系统动态壁纸无效果,发现桌面背景还是没变化,但是设置静态的图片又可以,求大神大师们解答? 是与布局空间的属性有关还是与AndroidManifest.xml中activity属性参数有关?

搜狗手写输入法桌面快捷方式怎么设置?

  1.右键单击 2.如图,选择扩展功能管理器 3.点击推荐扩展,点击安装手写输入. 4.安装完成退出. 5.桌面右键单击新建----快捷方式. 6.点击浏览 7.找到当初安装搜狗输入法的位置,找到SougouExtension,点击 8.找到handinput,点击 9.再找到1.1.0.38,点击,可以看到handinput, 10.选择handinput,点击确定 11.点击下一步 12.可以修改下名字,比如手写输入法,或者不改,点击完成. 13.然后就可以看到桌面上出现快捷方式了. 14

Android编程创建桌面快捷方式的常用方法小结【2种方法】

本文实例讲述了Android编程创建桌面快捷方式的常用方法.分享给大家供大家参考,具体如下: Android在桌面上生成快捷方式有两种情况,一种是直接在桌面直接生成;一种是长按桌面,在弹出的快捷菜单中生成. 谈谈在桌面上直接生成.个人觉得这个比较爽快,既然都是快捷方式了干嘛还要再隐藏一层呢?当然喜欢桌面干净的就比较喜欢第二个了. 第一个是通过广播(Broadcast)的形式向Luncher发送请求生成快捷方式的. 在网上找到关于这方面的注册信息. <!--设置wallpapaer的activit

android 为应用程序创建桌面快捷方式技巧分享_Android

我们开发一款软件后,如果手机装的软件过多,去翻的话会很难翻的,所以,在主页面有一个快捷方式的话会很不错的,下面是详细代码: 复制代码 代码如下: /** * 创建桌面快捷方式 */ private void createShortcut() { SharedPreferences setting = getSharedPreferences("silent.preferences", 0); // 判断是否第一次启动应用程序(默认为true) boolean firstStart =

Android应用创建桌面快捷方式代码_Android

android的快捷方式比较简单,就是发一个系统的广播,然后为快捷方式设置Intent--- package com.xikang.android.slimcoach.utils; /** * @author huiych * 创建快捷方式 * @created 2013-02-21 * */ import android.content.Intent; import android.os.Parcelable; import com.xikang.android.slimcoach.AppXi

Android如何创建桌面快捷方式_Android

Android创建桌面的快捷方式 概述 :创建桌面快捷方式相当与创建一个程序的入口,就像我们程序在安装完毕后会自动创建一个图标到桌面.其实创建桌面快捷方式跟创建一个程序入口差不多,但是像QQ会话一样创建一个QQ好友的会话快捷方式,就得动态的创建图标,名字了. 1.首先权限是必不可少的 <uses-permission android:name="com.android.launcher.permission.INSTALL_SHORTCUT" /> 2.然后就是在你项目配置

android 为应用程序创建桌面快捷方式技巧分享

我们开发一款软件后,如果手机装的软件过多,去翻的话会很难翻的,所以,在主页面有一个快捷方式的话会很不错的,下面是详细代码: 复制代码 代码如下: /** * 创建桌面快捷方式 */ private void createShortcut() { SharedPreferences setting = getSharedPreferences("silent.preferences", 0); // 判断是否第一次启动应用程序(默认为true) boolean firstStart =