我注意到Xiaomi Mi Phone
图标上有iOS'ed
。这就是我正在处理的应用程序图标看起来很糟糕的原因。
有没有办法为小米Mi手机提供单独的图标?或者用户是否需要改变自己?
答案 0 :(得分:0)
您可以检查设备制造商,然后在使用不同图标的活动别名的帮助下,您可以专门为小米手机更改图标。这个过程是这样的 -
首先在您的清单文件中的主要活动声明下创建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>
请注意我已删除该行
<action android:name="android.intent.action.MAIN" />
来自MainActivity声明的。它只存在于Activity-Alias中。此外,仅启用了第一个活动别名,这是用于普通图标,第二个带有小米图标的活动别名最初被禁用。
现在第二步,打开你的MainActivity.java并在里面创建这个方法:
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);
}
}
在此之后,只需在MainActivity的OnCreate()方法中调用此方法,即可完成。
一旦应用程序第一次启动,它将检查手机是否由小米制造,如果是,那么它将使用第二个活动别名启用它并禁用第一个(因此2个图标不在&# 39; t出现在手机中。)
确保在任何地方放置正确的软件包名称,并将两组应用程序图标放在您的可绘制文件夹中,并使用在清单文件中指定的名称。