Android 创建桌面快捷方式

原创 2013年12月05日 19:55:36
Android手机中生成快捷方式有两种情况,一种是由应用直接在桌面生成;一种是长按桌面,在弹出的快捷菜单中生成。

第一种方式是通过广播(Broadcast)的形式向Luncher发送请求生成快捷方式的。

以下截取该广播的注册信息

        <!-- Intent received used to install shortcuts from other applications -->
        <receiver
            android:name="com.android.launcher2.InstallShortcutReceiver"
            android:permission="com.android.launcher.permission.INSTALL_SHORTCUT">
            <intent-filter>
                <action android:name="com.android.launcher.action.INSTALL_SHORTCUT" />
            </intent-filter>
        </receiver>

由此可以看出,要在桌面上创建快捷方式就需要权限了:
android:permission="com.android.launcher.permission.INSTALL_SHORTCUT。
所以在我们的manifest.xml文件中,我们需要加入下面这段话:
<uses-permission android:name="com.android.launcher.permission.INSTALL_SHORTCUT"/>


private void createShortcut() {
		
		//创建快捷方式的Intent
        Intent shortcutIntent = new Intent("com.android.launcher.action.INSTALL_SHORTCUT");
        //不允许重复创建
        shortcutIntent.putExtra("duplicate", false);
        //快捷方式名称
        shortcutIntent.putExtra(Intent.EXTRA_SHORTCUT_NAME, getString(R.string.shortcut_name));
        //快捷图片
        Parcelable icon = Intent.ShortcutIconResource.fromContext(getApplicationContext(), R.drawable.ic_launcher_shortcut);
        shortcutIntent.putExtra(Intent.EXTRA_SHORTCUT_ICON_RESOURCE, icon);
        //点击快捷图片,运行的程序主入口
        shortcutIntent.putExtra(Intent.EXTRA_SHORTCUT_INTENT, new Intent(getApplicationContext() , TargetActivity.class));
        //发送广播。OK
        sendBroadcast(shortcutIntent);
	}


AndroidManifest.xml

<?xml version="1.0" encoding="utf-8"?>
<manifest xmlns:android="http://schemas.android.com/apk/res/android"
    package="com.example.shortcuttest"
    android:versionCode="1"
    android:versionName="1.0" >

    <uses-sdk
        android:minSdkVersion="8"
        android:targetSdkVersion="15" />

    <!-- 声明 创建和删除快捷方式时声明权限 -->
    <uses-permission android:name="com.android.launcher.permission.INSTALL_SHORTCUT"/>
    
    <application
        android:allowBackup="true"
        android:icon="@drawable/ic_launcher"
        android:label="@string/app_name"
        android:theme="@style/AppTheme" >
        <activity
            android:name="com.example.shortcuttest.MainActivity"
            android:label="@string/app_name" >
            <intent-filter>
                <action android:name="android.intent.action.MAIN" />

                <category android:name="android.intent.category.LAUNCHER" />
            </intent-filter>
        </activity>
        
        <activity android:name="com.example.shortcuttest.TargetActivity">
            <!-- 目标Activity 需要具备 LAUNCHER功能-->
            <intent-filter>
                <action android:name="android.intent.action.MAIN" />
                <category android:name="android.intent.category.LAUNCHER" />
            </intent-filter>
        </activity>
        
    </application>

</manifest>



注意:需要成为快捷方式入口的Activity必须增加以下配置,否则点击快捷方式的时候会报错

<intent-filter>
                <action android:name="android.intent.action.MAIN" />
                <category android:name="android.intent.category.LAUNCHER" />
            </intent-filter>




版权声明:本文为博主原创文章,未经博主允许不得转载。

相关文章推荐

android创建桌面快捷方式

  • 2016年01月19日 18:25
  • 4.06MB
  • 下载

Android O(8.0)创建桌面快捷方式

Android O、Android 8.0、版本适配、桌面快捷方式
  • rentee
  • rentee
  • 2017年08月09日 17:18
  • 1783

创建桌面快捷方式源代码(android)

  • 2015年02月04日 16:41
  • 1.7MB
  • 下载

Android创建和删除桌面快捷方式

有同学方反馈创建快捷方式后,点击快捷方式后不能启动程序或者提示"未安装程序",貌似是新的rom在快捷方式这块做过修改(由于此文是11年5月所出,估计应该是2.0或2.1的rom),现已修正,HTC G...
  • yyqasg
  • yyqasg
  • 2014年01月06日 10:51
  • 596

android--创建桌面快捷方式

Android app 生成快捷方式

Android 桌面快捷方式的创建与删除

Android 桌面快捷方式的创建与删除,研究后记录一下 解决了以下问题: 1、  第一次安装后自动创建快捷方式 2、  点击创建如果已经创建则不重复创建 3、  卸载后桌面快捷方式也一起删除、 4、...

Android:桌面创建快捷方式

记录google响应桌面创建APP快捷方式的方法:

android 检查是否创建桌面快捷方式

android 检查是否创建桌面快捷方式 http://blog.csdn.net/wqs1000/article/details/6951574 package com.wqs; im...

android开发时 桌面快捷方式的创建

发现每次第一次运行应用的时候有hen'duo
内容举报
返回顶部
收藏助手
不良信息举报
您举报文章:Android 创建桌面快捷方式
举报原因:
原因补充:

(最多只允许输入30个字)