Я разрабатываю функцию изменения значка приложения в моем приложении для Android. Однако я столкнулся с проблемой, когда значок приложения дублируется во всех случаях, за исключением изменения значка по умолчанию.
Желаемое поведение:
Когда значок приложения изменен, должен отображаться только один значок без дублирования.
Описание проблемы:
Я использую класс LauncherIcons для изменения приложения значок и попробовал различные варианты установки значка. Я также очистил кеш и перезагрузил устройство, но проблема не устранена.
Запрос о помощи:
Как решить проблему дублирования значков приложений ?
Как изменить значок приложения без дублирования?
Есть ли какая-нибудь соответствующая информация о коде или конфигурации?
Заранее благодарим за помощь.
Выбрать сразу после установки и основное действие
Выбрать псевдоним OneLauncher (изменить значок приложения)
// MainActivity в проекте Android Studio< /p>
..
..
public void ChangeIcon(Context context, String[] iconList, String iconType) throws IOException, ClassNotFoundException {
PackageManager manager = context.getPackageManager();
ComponentName mainComponentName = getComponentName();
int actionType = 0;
for (int i = 0; i < iconList.length; i++) {
if (iconList.equals(iconType)) {
actionType = PackageManager.COMPONENT_ENABLED_STATE_ENABLED;
} else {
actionType = PackageManager.COMPONENT_ENABLED_STATE_DISABLED;
}
String packageName = String.format("%s.%s", getClass().getPackage().getName(), iconList);
ComponentName componentName = new ComponentName(context, packageName);
manager.setComponentEnabledSetting(new ComponentName(context, String.format("%s.%s", getClass().getPackage().getName(), iconList)),
actionType, PackageManager.DONT_KILL_APP);
}
}
..
..
// AndroidManifest.xml в проекте Android Studio
// AppIconChange в проекте Unity
using System.Collections;
using System.Collections.Generic;
using UnityEngine;
using UnityEngine.UI;
public class TestScript : MonoBehaviour
{
public Button _toast;
public Button _main;
public Button _appIcon01;
public Button _appIcon02;
public Button _appIcon03;
private AndroidJavaObject activityContext = null;
private AndroidJavaClass javaClass = null;
private AndroidJavaObject javaClassInstance = null;
private string[] IconTypeArr = { "MainActivity", "OneLauncherAlias", "TwoLauncherAlias", "ThreeLauncherAlias" };
private void Awake()
{
using (AndroidJavaClass activityClass = new AndroidJavaClass("com.unity3d.player.UnityPlayer"))
{
activityContext = activityClass.GetStatic("currentActivity");
}
using (javaClass = new AndroidJavaClass("com.test.testApp.player.MainActivity"))
{
if (javaClass != null)
{
javaClassInstance = javaClass.CallStatic("instance");
}
}
_toast.onClick.AddListener(OnClickToast);
_main.onClick.AddListener(OnClickChangeAppIcon_Main);
_appIcon01.onClick.AddListener(OnClickChangeAppIcon_1);
_appIcon02.onClick.AddListener(OnClickChangeAppIcon_2);
_appIcon03.onClick.AddListener(OnClickChangeAppIcon_3);
}
private void OnClickToast()
{
javaClassInstance.Call("ShowToast", activityContext, "테스트 토스트 메세지 출력 ^^");
}
private void OnClickChangeAppIcon_Main()
{
javaClassInstance.Call("ChangeIcon", activityContext, IconTypeArr, "MainActivity");
javaClassInstance.Call("ShowToast", activityContext, "기본 앱 아이콘으로 변경");
}
private void OnClickChangeAppIcon_1()
{
javaClassInstance.Call("ChangeIcon", activityContext, IconTypeArr, "OneLauncherAlias");
javaClassInstance.Call("ShowToast", activityContext, "커스텀 아이콘 1번으로 변경");
}
private void OnClickChangeAppIcon_2()
{
javaClassInstance.Call("ChangeIcon", activityContext, IconTypeArr, "TwoLauncherAlias");
javaClassInstance.Call("ShowToast", activityContext, "커스텀 아이콘 2번으로 변경");
}
private void OnClickChangeAppIcon_3()
{
javaClassInstance.Call("ChangeIcon", activityContext, IconTypeArr, "ThreeLauncherAlias");
javaClassInstance.Call("ShowToast", activityContext, "커스텀 아이콘 3번으로 변경");
}
}
Добавлен фильтр отслеживания намерений в активности «MainActivity», но проблема все равно возникла.
Подробнее здесь: https://stackoverflow.com/questions/781 ... uplication
Unity: как динамически менять значок приложения без дублирования ⇐ C#
Место общения программистов C#
-
Anonymous
1710735557
Anonymous
Я разрабатываю функцию изменения значка приложения в моем приложении для Android. Однако я столкнулся с проблемой, когда значок приложения дублируется во всех случаях, за исключением изменения значка по умолчанию.
Желаемое поведение:
Когда значок приложения изменен, должен отображаться только один значок без дублирования.
Описание проблемы:
Я использую класс LauncherIcons для изменения приложения значок и попробовал различные варианты установки значка. Я также очистил кеш и перезагрузил устройство, но проблема не устранена.
Запрос о помощи:
Как решить проблему дублирования значков приложений ?
Как изменить значок приложения без дублирования?
Есть ли какая-нибудь соответствующая информация о коде или конфигурации?
Заранее благодарим за помощь.
Выбрать сразу после установки и основное действие
Выбрать псевдоним OneLauncher (изменить значок приложения)
// MainActivity в проекте Android Studio< /p>
..
..
public void ChangeIcon(Context context, String[] iconList, String iconType) throws IOException, ClassNotFoundException {
PackageManager manager = context.getPackageManager();
ComponentName mainComponentName = getComponentName();
int actionType = 0;
for (int i = 0; i < iconList.length; i++) {
if (iconList[i].equals(iconType)) {
actionType = PackageManager.COMPONENT_ENABLED_STATE_ENABLED;
} else {
actionType = PackageManager.COMPONENT_ENABLED_STATE_DISABLED;
}
String packageName = String.format("%s.%s", getClass().getPackage().getName(), iconList[i]);
ComponentName componentName = new ComponentName(context, packageName);
manager.setComponentEnabledSetting(new ComponentName(context, String.format("%s.%s", getClass().getPackage().getName(), iconList[i])),
actionType, PackageManager.DONT_KILL_APP);
}
}
..
..
// AndroidManifest.xml в проекте Android Studio
// AppIconChange в проекте Unity
using System.Collections;
using System.Collections.Generic;
using UnityEngine;
using UnityEngine.UI;
public class TestScript : MonoBehaviour
{
public Button _toast;
public Button _main;
public Button _appIcon01;
public Button _appIcon02;
public Button _appIcon03;
private AndroidJavaObject activityContext = null;
private AndroidJavaClass javaClass = null;
private AndroidJavaObject javaClassInstance = null;
private string[] IconTypeArr = { "MainActivity", "OneLauncherAlias", "TwoLauncherAlias", "ThreeLauncherAlias" };
private void Awake()
{
using (AndroidJavaClass activityClass = new AndroidJavaClass("com.unity3d.player.UnityPlayer"))
{
activityContext = activityClass.GetStatic("currentActivity");
}
using (javaClass = new AndroidJavaClass("com.test.testApp.player.MainActivity"))
{
if (javaClass != null)
{
javaClassInstance = javaClass.CallStatic("instance");
}
}
_toast.onClick.AddListener(OnClickToast);
_main.onClick.AddListener(OnClickChangeAppIcon_Main);
_appIcon01.onClick.AddListener(OnClickChangeAppIcon_1);
_appIcon02.onClick.AddListener(OnClickChangeAppIcon_2);
_appIcon03.onClick.AddListener(OnClickChangeAppIcon_3);
}
private void OnClickToast()
{
javaClassInstance.Call("ShowToast", activityContext, "테스트 토스트 메세지 출력 ^^");
}
private void OnClickChangeAppIcon_Main()
{
javaClassInstance.Call("ChangeIcon", activityContext, IconTypeArr, "MainActivity");
javaClassInstance.Call("ShowToast", activityContext, "기본 앱 아이콘으로 변경");
}
private void OnClickChangeAppIcon_1()
{
javaClassInstance.Call("ChangeIcon", activityContext, IconTypeArr, "OneLauncherAlias");
javaClassInstance.Call("ShowToast", activityContext, "커스텀 아이콘 1번으로 변경");
}
private void OnClickChangeAppIcon_2()
{
javaClassInstance.Call("ChangeIcon", activityContext, IconTypeArr, "TwoLauncherAlias");
javaClassInstance.Call("ShowToast", activityContext, "커스텀 아이콘 2번으로 변경");
}
private void OnClickChangeAppIcon_3()
{
javaClassInstance.Call("ChangeIcon", activityContext, IconTypeArr, "ThreeLauncherAlias");
javaClassInstance.Call("ShowToast", activityContext, "커스텀 아이콘 3번으로 변경");
}
}
Добавлен фильтр отслеживания намерений в активности «MainActivity», но проблема все равно возникла.
Подробнее здесь: [url]https://stackoverflow.com/questions/78177908/unity-how-to-change-app-icon-dynamically-without-duplication[/url]
Ответить
1 сообщение
• Страница 1 из 1
Перейти
- Кемерово-IT
- ↳ Javascript
- ↳ C#
- ↳ JAVA
- ↳ Elasticsearch aggregation
- ↳ Python
- ↳ Php
- ↳ Android
- ↳ Html
- ↳ Jquery
- ↳ C++
- ↳ IOS
- ↳ CSS
- ↳ Excel
- ↳ Linux
- ↳ Apache
- ↳ MySql
- Детский мир
- Для души
- ↳ Музыкальные инструменты даром
- ↳ Печатная продукция даром
- Внешняя красота и здоровье
- ↳ Одежда и обувь для взрослых даром
- ↳ Товары для здоровья
- ↳ Физкультура и спорт
- Техника - даром!
- ↳ Автомобилистам
- ↳ Компьютерная техника
- ↳ Плиты: газовые и электрические
- ↳ Холодильники
- ↳ Стиральные машины
- ↳ Телевизоры
- ↳ Телефоны, смартфоны, плашеты
- ↳ Швейные машинки
- ↳ Прочая электроника и техника
- ↳ Фототехника
- Ремонт и интерьер
- ↳ Стройматериалы, инструмент
- ↳ Мебель и предметы интерьера даром
- ↳ Cантехника
- Другие темы
- ↳ Разное даром
- ↳ Давай меняться!
- ↳ Отдам\возьму за копеечку
- ↳ Работа и подработка в Кемерове
- ↳ Давай с тобой поговорим...
Мобильная версия