Android 如何为小米手机提供单独的图标?

Android 如何为小米手机提供单独的图标?,android,icons,Android,Icons,我注意到小米米手机上的图标是iOS上的。这就是为什么我正在使用的应用程序的图标看起来很糟糕 有没有办法为那些小米手机提供一个单独的图标?或者这是用户必须自己更改的吗?您可以查看设备制造商,然后在为不同图标使用活动别名的帮助下,您可以专门为小米手机更改图标。过程是这样的- 首先在清单文件的主活动声明下创建2个新活动别名: <!-- MAIN ACTIVITY --> <activity android:name="com.example.MainActiv

我注意到小米米手机上的图标是iOS上的。这就是为什么我正在使用的应用程序的图标看起来很糟糕


有没有办法为那些小米手机提供一个单独的图标?或者这是用户必须自己更改的吗?

您可以查看设备制造商,然后在为不同图标使用活动别名的帮助下,您可以专门为小米手机更改图标。过程是这样的-

首先在清单文件的主活动声明下创建2个新活动别名:

<!-- MAIN ACTIVITY -->
    <activity
        android:name="com.example.MainActivity"
        android:label="@string/app_name" >
        <intent-filter>
            <category android:name="android.intent.category.LAUNCHER" />
        </intent-filter>
    </activity>

    <!-- 2 ACTIVITY ALIAS For Main Activity -->
    <activity-alias
        android:name="com.example.MainActivity-Normal"
        android:enabled="true"
        android:icon="@drawable/logo_normal"
        android:label="@string/app_name"
        android:targetActivity="com.example.MainActivity" >
        <intent-filter>
            <action android:name="android.intent.action.MAIN" />

            <category android:name="android.intent.category.LAUNCHER" />
        </intent-filter>
    </activity-alias>

    <activity-alias
        android:name="com.example.MainActivity-Xiaomi"
        android:enabled="false"
        android:icon="@drawable/logo_xiaomi"
        android:label="@string/app_name"
        android:targetActivity="com.example.MainActivity" >
        <intent-filter>
            <action android:name="android.intent.action.MAIN" />

            <category android:name="android.intent.category.LAUNCHER" />
        </intent-filter>
    </activity-alias>
在此之后,只需在MainActivity的OnCreate()方法中调用此方法即可

一旦应用程序第一次启动,它将检查手机是否由小米制造,如果是,它将通过启用和禁用第一个活动别名来使用第二个活动别名(这样你的手机上就不会出现两个图标)


确保您在所有位置都放置了正确的软件包名称,并将两组应用程序图标以清单文件中指定的名称放置在可绘制文件夹中。

您应该能够使用
String device=Devices.getDeviceName()获取设备模型现在,如果它与小米匹配,请更改设备图标。有关如何获取设备名称的详细信息,请参阅。
<action android:name="android.intent.action.MAIN" />
private void checkForIcon(){
    if(Build.MANUFACTURER.equals("Xiaomi")){
        getPackageManager().setComponentEnabledSetting(
                new ComponentName("com.example", "com.example.MainActivity-Normal"), 
                    PackageManager.COMPONENT_ENABLED_STATE_DISABLED, PackageManager.DONT_KILL_APP);
        getPackageManager().setComponentEnabledSetting(
                new ComponentName("com.example", "com.example.MainActivity-Xiaomi"),
                    PackageManager.COMPONENT_ENABLED_STATE_ENABLED, PackageManager.DONT_KILL_APP);
    }
}