android创建桌面快捷键shortcut

有很多人也写过创建桌面快捷键的blog,但是大部分都只讲了怎么用,其实技术使用起来都很简单,但是你使用后下次还知道吗?

根本原因还是不清楚原理,今天我就来讲讲shortcut创建过程。

过程:

home键--》点击添加--》弹出一个Dialog对话框--》Dialog对话框中的数据,是一个系统级专门用来查找的Activity启动

---》查找出数据显示能添加的快捷方式---》然后保存数据,退出dialog——》桌面launcher操作——》完成

原理:

查看源码,其实是launcher 中调用pickShortcut()方法,启动PickActivity检查需要的数据,在PickActivity中会检查

manifest.xml中对activity有没有加IntenttFilter,如果查到有,就会通过switch-case选择对于的Item返回消息给laucher,

laucher中在onResultActivity()做接受返回的数据,再次启动一个带返回值得Activity到ShortcutActivity,等待ShortcutActivity

处理完成,返回信息,调用completeAddliveFolder().

其实我们要做的主要是下图步骤2和步骤5;步骤2 在manifest.xml给Activity添加IntentFileter,步骤5,给快捷方式添加一个

图标和名称。

代码:

 <activity android:name="ShortCutTest">
        <intent-filter>
            <action android:name="android.intent.action.CREATE_SHORTCUT"/>
        </intent-filter>
    </activity>   
public class ShortCutTest extends Activity{
    @Override
    protected void onCreate(Bundle savedInstanceState) {
    // TODO Auto-generated method stub
    super.onCreate(savedInstanceState);
        createShortCut();
    }     

    public void createShortCut(){
        Intent addShortCut;
        //判断是否需要添加快捷方式
        if(getIntent().getAction().equals(Intent.ACTION_CREATE_SHORTCUT)){
            addShortCut = new Intent();
            //快捷方式的名称
            addShortCut.putExtra(Intent.EXTRA_SHORTCUT_NAME , "我的快捷方式");
            //显示的图片
            Parcelable icon = ShortcutIconResource.fromContext(this, R.drawable.icon);
            addShortCut.putExtra(Intent.EXTRA_SHORTCUT_ICON_RESOURCE, icon);
            //快捷方式激活的activity,需要执行的intent,自己定义
            addShortCut.putExtra(Intent.EXTRA_SHORTCUT_INTENT, new Intent());
            //OK,生成
            setResult(RESULT_OK, addShortCut);
        }else{
             //取消
            setResult(RESULT_CANCELED);
        }
    }
}   

理解了原理,是不是再也不会忘记怎么添加快捷方式了

android创建桌面快捷键shortcut

时间: 2024-10-03 13:38:44

android创建桌面快捷键shortcut的相关文章

android创建桌面快捷方式(启动目标非项目的启动页)

1.布局文件中,目标Activity加入以下filter <intent-filter>                  <action android:name="android.intent.action.CREATE_SHORTCUT" />                  <category android:name="android.intent.category.DEFAULT" />              &

android 创建桌面小部件widget

1. 创建自定义widget的广播类,继承自 AppWidgetProvider(有了这个广播就会在widgets中能够选择了吗?)这个广播的生命周期主要有五个,在第一个widget拖动到桌面和最后一个widget删除和已经有widget时拖动到桌面的生命周期是不同的 根据对生命周期的分析,在onUpdate中进行初始化,在onDisabled中进行销毁(关闭服务). public class ProcessWidgetReceiver extends AppWidgetProvider { p

Android -- 创建桌面快捷方式

/** * * 返回添加到桌面快捷方式的Intent: * * 1.给Intent指定action="com.android.launcher.INSTALL_SHORTCUT" * * 2.给定义为Intent.EXTRA_SHORTCUT_INENT的Intent设置与安装时一致的action(必须要有) * * 3.添加权限:com.android.launcher.permission.INSTALL_SHORTCUT */ public Intent getShortcutT

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

有同学方反馈创建快捷方式后,点击快捷方式后不能启动程序或者提示"未安装程序",貌似是新的rom在快捷方式这块做过修改(由于此文是11年5月所出,估计应该是2.0或2.1的rom),现已修正,HTC G11 2.3.5rom测试通过. 1,判断是否已经创建了快捷方式(在某些机型中需要判断) 1 2 3 4 5 6 7 8 9 10 11 12 13 private boolean hasShortcut() {         boolean isInstallShortcut = fa

Android设置壁纸和创建桌面图标

写了个小Demo,实现了设置壁纸和创建桌面图标的逻辑: 创建壁纸比较简单,将Drawable转为Bitmap,然后直接用setWallpaper就行了: Bitmap bitmap = BitmapFactory.decodeResource(Main.this.getResources(), R.drawable.wallpaper); try { Main.this.setWallpaper(bitmap); } catch (IOException e) { e.printStackTra

WPF 创建桌面快捷方式

#region 创建桌面快捷方式 string deskTop = System.Environment.GetFolderPath(System.Environment.SpecialFolder.Desktop); string dirPath = System.Environment.CurrentDirectory; string exePath = Assembly.GetExecutingAssembly().Location; System.Diagnostics.FileVers

Android之桌面组件AppWidget

转载:Android之桌面组件App Widget初探 Android开发应用除了程序应用,还有App Widget应用.好多人会开发程序应用而不会开发App Widget应用.本帖子就是帮助大家学习如何开发App Widget应用的. 先简单说说App Widget的原理.App Widget是在桌面上的一块显示信息的东西,通过单击App Widget跳转到程序入口类.而系统自带的程序,典型的App Widget是music,这个Android内置的音乐播放小程序.这个是典型的App Widg

创建桌面快捷图标

分析桌面程序的源码发现具有接收创建桌面快捷图标的广播接受,创建快捷突变即发送广播的方式来实现的.下面来分析创建桌面快捷图标的过程. 1. 在应用程序的第一个Activity,添加创建快捷图标的方法, installShortCut(); // 创建桌面快捷图标 private void intallShotCut() { // 定义广播通知桌面创建快捷图标 Intent intent = new Intent(); intent.setAction("com.android.launcher.a

【Android】Eclipse快捷键精选

1. ctrl+shift+r:打开资源 这可能是所有快捷键组合中最省时间的了. 这组快捷键可以让你打开你的工作区中任何一个文件,而你只需要按下文件名或mask名中的前几个字母,比如applic*.xml. 美中不足的是这组快捷键并非在所有视图下都能用. 2. ctrl+o:快速outline 如果想要查看当前类的方法或某个特定方法,但又不想把代码拉上拉下,也不想使用查找功能的话,就用ctrl+o吧. 它可以列出当前类中的所有方法及属性,你只需输入你想要查询的方法名,点击enter就能够直接跳转