【Android】单应用多Icon图标:如何在桌面创建一个Activity icon图标

问题背景:
客户要求在桌面创建一个通话记录的Icon图标,通话记录属于Dialer中的一个Activity。

1、创建桌面Icon:
在对应的AndroidManifest.xml文件中添加intent-filter

    <action android:name=""android.intent.action.MAIN"" />
    <category android:name=""android.intent.category.LAUNCHER"" />
    
    如下代码位置:
<activity
      android:label=""@string/call_log_activity_title""
      android:name=""com.android.dialer.app.calllog.CallLogActivity""
      android:theme=""@style/DialtactsTheme""
      android:taskAffinity=""android.task.dialer.calllog""
      android:launchMode=""singleTask"">
      <!--zzh add begin-->
      <intent-filter>
        <action android:name=""android.intent.action.MAIN"" />
        <category android:name=""android.intent.category.LAUNCHER"" />
      </intent-filter>
      <!--zzh add end-->
    </activity>

2、这样虽然创建了桌面icon,但是图标是和应用原来的图标一模一样,即使在Launcher或者Framwork去替换也只能通过包名来更新资源,但只能一对一。
为了解决这个问题可以在AndroidManifest.xml文件中的Activity下添加如下代码:

android:icon=“@drawable/calllog_itel”>

<activity
      android:label=""@string/call_log_activity_title""
      android:name=""com.android.dialer.app.calllog.CallLogActivity""
      android:theme=""@style/DialtactsTheme""
      android:taskAffinity=""android.task.dialer.calllog""
      android:launchMode=""singleTask"">
      <!--zzh add begin-->
      android:icon="@drawable/your_icon">
      <intent-filter>
        <action android:name=""android.intent.action.MAIN"" />
        <category android:name=""android.intent.category.LAUNCHER"" />
      </intent-filter>
      <!--zzh add end-->
    </activity>

3、实现后的效果,其中call_log_activity_title就是额外图标的名称,在近期任务中也是ok的
单应用多icon
单应用多图标

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值