如何定制launcher allapps中应用的快捷方式

android中,关于Intent相关内容是一整套强大的解耦合机制,跟spring的依赖注射有异曲同工之妙,这里来举几个简单应用的例子.

 

如何定制launcher allapps中应用的快捷方式

 

1\如何让用户不需要,而系统必须有的组件从ui中消失.

比如mid中的phone、mms和contact应用(如上图椭圆标注的),对于没有电话功能的mid来说,让它们出现在ui中是非常扎眼的,对于有完美主义倾向的人来说,永远用不到的东西出现在选单当中,会让用户觉得没有被尊重的感觉,所以,很有必要让它们在背后默默的服务,而不在用户面前碍眼.

 

解决的办法很简单,进入到对应应用的andoridmunifest.xml文件你会看到这样的代码:

----------------------------------------------------------------------------------------------------------

        <activity android:name="Settings" android:label="@string/settings_label"

                android:taskAffinity="com.android.settings"

                android:clearTaskOnLaunch="true"

                android:launchMode="singleTop">

            <intent-filter>

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

                <action android:name="android.settings.SETTINGS" />

                <category android:name="android.intent.category.DEFAULT" />

                <category android:name="android.intent.category.LAUNCHER" />

            </intent-filter>

        </activity>

---------------------------------------------------------------------------------------------------------

把红色的这一行拿掉即可.

 

一个Activity如果拥有"android.intent.category.LAUNCHER"这个属性,则表示它属于这个应用为普通用户提供的入口,就像超市为顾客指定的入口一样,用户可以通过应用程序的门进入到应用内部体验.而对程序开发者而言,进入的方式就不限于launcher属性的Activity了,通过intent提供的action,category,class,type都可以匹配到对应的Activity,通过intent调用Activity分为显式调用和隐式调用,显示调用局限于应用内部,而隐式调用则完全是解耦的全局匹配模式.非常之方便.

 

2\如何像astro一样同一个应用在allappsview里面显示多个快捷方式呢?

 

同样的,在你需要它显示的Activity里面加上<category android:name="android.intent.category.LAUNCHER" />即可.则像上图中的方形标注的快捷方式一样,来自同一个应用,但是有自己独立的快捷方式.要修改图片和文字内容也很简单,配置以下紫色的项即可.

 

 

----------------------------------------------------------------------------------------------------------

 

        <activity android:name="WirelessSettings"

                android:label="@string/wireless_networks_settings_title"

                android:icon="@drawable/ic_launcher_settings"

                >

            <intent-filter>

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

                <action android:name="android.settings.WIRELESS_SETTINGS" />

                <action android:name="android.settings.AIRPLANE_MODE_SETTINGS" />

                <category android:name="android.intent.category.DEFAULT" />

                <category android:name="android.intent.category.LAUNCHER" />

                <category android:name="android.intent.category.VOICE_LAUNCH" />

            </intent-filter>

        </activity>

 

----------------------------------------------------------------------------------------------------------

你可能感兴趣的:(spring,UI,android,xml)