创建桌面快捷方式

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

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

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

?
1
2
3
4
5
6
7
8
<!-- 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"/>


?
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
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

?
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
<? 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必须增加以下配置,否则点击快捷方式的时候会报错

?
1
2
3
4
< intent-filter
                 < action android:name = "android.intent.action.MAIN" /> 
                 < category android:name = "android.intent.category.LAUNCHER" /> 
             </ intent-filter >


from:http://www.open-open.com/lib/view/open1392187109379.html

  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值