- c - 在位数组中找到第一个零
- linux - Unix 显示有关匹配两种模式之一的文件的信息
- 正则表达式替换多个文件
- linux - 隐藏来自 xtrace 的命令
我注意到在 Xiaomi Mi Phone
上,图标是 iOS 版
。这就是为什么我正在开发的应用程序的图标看起来很糟糕。
有没有办法为那些小米手机提供一个单独的图标?或者这是用户必须自己改变的吗?
最佳答案
您可以检查设备制造商,然后借助对不同图标使用 activity-alias 的帮助,您可以专门为小米手机更改图标。过程是这样的——
首先在 list 文件中的主要 Activity 声明下创建 2 个新的 Activity 别名:
<!-- 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 中。同样只有第一个 Activity-Alias 被启用,它是用于普通图标的,而第二个 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() 方法中调用此方法即可。
一旦应用程序第一次启动,它就会检查手机是否由小米制造,如果是,它会通过启用它并禁用第一个来使用第二个 Activity-Alias(这样 2 个图标就不会t 出现在您的手机中)。
确保将正确的包名称放在各处,并将两组应用程序图标放在可绘制文件夹中,名称在 Manifest 文件中指定。
关于android - 如何为小米手机提供单独的图标?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/28581717/
我看到很多关于检测黑暗模式的问题,比如 this one在堆栈溢出上访问了许多媒体博客,如 How to know when you’re using dark mode programmatical
我有一个非常奇怪的问题。我正在从画廊中挑选一张图片,该代码在诺基亚 6、一加 X 等所有设备上都能正常工作。当它 来到小米设备图像未设置ImageView . 谁能帮我解决这个问题? 我必须选择多个图
我研究 Android 应用程序的开发。遇到了某个问题,为了解决这个问题我已经拥有了几乎所有的资源。问题是这样的:在一些制造商小米、魅族、华为的设备上(发现甚至在一些三星和华硕设备上的信息)其固件安装
我使用 Theme.SplashScreen 实现了 Android 12 的新启动画面。但它不适用于具有 force dark 模式的 Xiaomi MIUI 设备。android:forceDar
小米 Redmi Note 3,当您从后台清除应用程序时,任何使用代码创建的自定义服务将被禁用,问题不会发生在三星和其他手机上,但会发生在类似的手机上。 最佳答案 您需要将您的应用程序添加到“ pro
小米官方信息显示,除小米电视 1 代、小米盒子 1 代、部分定制电视外,MIUI for TV 3.0已更新至所有小米电视及小米盒子。 ▲MIUI for TV 3.0 | 图源:小米 小米
我正在尝试代理来自 Android One 手机 - 小米 a1 的流量。我安装了证书,在设置中随处允许使用这些证书,在 Charles 本身中为指定域启用了 SSL 代理。 但每次流量开始通过 Ch
我看到下一行出现奇怪的崩溃: java.lang.NoSuchMethodError: org.apache.commons.lang3.builder.EqualsBuilder.a 是的,我使用
我正在使用前台服务来跟踪用户的位置,但它在 OPPO VIVO 和 XIOAMI MIUI 等少数设备上停止。 读完一些文章后,我尝试了一些事情,比如对于OPPO1:打开启动管理器2:关闭后台卡住、异
使用 redmi note 4 通过 appium 进行移动自动化测试。每次执行测试时,它都会要求通过 USB 安装此应用程序并记住我的选择单选按钮。我在开发者选项中启用了以下选项: USB Debu
我是一名优秀的程序员,十分优秀!