关于添加快捷方式的问题

时间:2023-01-21 11:07:47

320x480的这个桌面被分为了16个80x100的单元格,横屏后是106x74的16个单元格

 

增加快捷图标,很容易想到的就是个发个广播

首先是mainfest.xml中添加个权限<uses-permission android:name="com.android.launcher.permission.INSTALL_SHORTCUT"/>

 

其次定义个Intent addshortcut = new Intent("com.android.launcher.action.INSTALL_SHORTCUT");//发送广播的intent

Parcelable icon = Intent.ShortcutIconResource.fromContext(context, R.drawable.XXX);

addshortcut.putExtra(Intent.EXTRA_SHORTCUT_NAME, xxxxx);//显示图标名称

 

Intent directIntent = new Intent(Intent.ACTION_MAIN);

directIntent.setClassName("xxxx", "xxxxxxx");

addshortcut.putExtra(Intent.EXTRA_SHORTCUT_INTENT, directIntent );//要跳转的intent

addShortcut.putExtra(Intent.EXTRA_SHORTCUT_ICON_RESOURCE, icon);//显示的icon

sendBroadcast(addShortcut);//发送广播

 

 

查资料的时候说还有一种方式,仔细看了一下,虽然说用处不是太大,但是还是值得记录一下,手动在桌面长按后,选择shortcut,这个时候会有application这项,如果想和这项并列一起出现,就需要选择做点手脚了,在mainfest.xml的activity的<intent-filter>中增加一点如下

<intent-filter>

<action android:name="android.intent.action.CREATER_SHORTCUT"/>

</intent-filter>

 

然后再activity的oncreate()中做一个判断

 

if(getIntent().getActiion().equals(Intent.ACTION_CREATE_SHORTCUT)) {

/**初始化添加快捷图标的Intent*/

addShortcut = new Intent();

addShortcut.putExtra(Intent.EXTRA_SHORTCUT_NAME, "NAME");

Parcelable icon = Intent.ShortcutIconResource.fromContext(context, R.drawable.xxx);

addShortcut.putExtra(Intent.EXTRA_SHORTCUT_ICON_RESOURCE, icon);

Intent dirIntent = new Intent(xxxx);

addShortcut.putExtra(Intent.EXTRA_SHORTCUT_INTENT, dirIntent);

 

/**设置Result*/

setResult(RESULT_OK, addShortcut);

}else{

setResult(RESULT_CANCELED);

}

finish();