Android在桌面上生成快捷方式有两种情况,一种是直接在桌面直接生成;一种是长按桌面,在弹出的快捷菜单中生成。

先谈谈在桌面上直接生成。个人觉得这个比较爽快,既然都是快捷方式了干嘛还要再隐藏一层呢?当然喜欢桌面干净的就比较喜欢第二个了。

、通过广播(Broadcast)的形式向Luncher发送请求生成快捷方式  

  在网上找到关于这方面的注册信息。

<!--设置wallpapaer的activity -->
<!-- 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"/>  

  下面就是代码层的实现:

  假如我在一个activity中创建一个创建快捷方式的方法:createShortCut();

public 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.shortcutname));
  //快捷图片
  Parcelable icon = Intent.ShortcutIconResource.fromContext(getApplicationContext(), R.drawable.icon);
  shortcutintent.putExtra(Intent.EXTRA_SHORTCUT_ICON_RESOURCE, icon);
  //点击快捷图片,运行的程序主入口
  shortcutintent.putExtra(Intent.EXTRA_SHORTCUT_INTENT, new Intent(getApplicationContext() , EnterActivity.class));
  //发送广播。OK
  sendBroadcast(shortcutintent);
}

  二、长按桌面弹出的桌面快捷方式创建

  第一页谈过直接在桌面生成快捷方式,现在说说如何在添加到一个SHORTCUTS列表中,就是你长按桌面弹出来的那个东东。

  首先在注册activity时,需要添加一个action为android.intent.action.CREATE_SHOERTCUT的intentFilter.如下所示:

<activity android:name="ShortCutTest">
  <intent-filter>
    <action android:name="android.intent.action.CREATE_SHORTCUT"/>
  </intent-filter>
</activity>

  接下来就是就是设置快捷方式的图标、名称、事件等属性。这里图表的生成,android里提供了专门的方法来生成。

public class ShortCutTest extends Activity{
@Override
protected void onCreate(Bundle savedInstanceState) {
// TODO Auto-generated method stub
super.onCreate(savedInstanceState);
}

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);
}
}
}



更多相关文章

  1. Android(安卓)远程图片获取和本地缓存策略
  2. Android(安卓)简单图片浏览器(疯狂Android讲义第三版)
  3. Android(安卓)获取并显示远程图片 Picasso框架的使用
  4. android ImageView 的几点经验总结
  5. Android(安卓)中Canvas.drawBitmap()的使用
  6. apk的优化方案-1
  7. Android(安卓)从相册中选择照片并返回
  8. 如何让ImageView的背景图片不缩放
  9. 用vector drawable加快应用图片加载速度

随机推荐

  1. android persist属性使用
  2. android 百度地图长按弹出气泡 popupWind
  3. android检测设备方向
  4. dex2jar 使用方法
  5. Android传感器---Motion Sensor(三)
  6. Android的跨进程通信
  7. Android通过URL/URI来打开我们的应用
  8. 计算经纬度间的距离公里数
  9. Android点划线自定义View
  10. android 验证码实现,详细标注!