问题标签 [pinned-shortcut]
For questions regarding programming in ECMAScript (JavaScript/JS) and its various dialects/implementations (excluding ActionScript). Note JavaScript is NOT the same as Java! Please include all relevant tags on your question; e.g., [node.js], [jquery], [json], [reactjs], [angular], [ember.js], [vue.js], [typescript], [svelte], etc.
android - 移除 Android O 固定快捷方式中的应用程序图标
在 Android O 中引入了新的固定快捷方式 API。此外,他们简单地阻止旧方式(通过“com.android.launcher.action.INSTALL_SHORTCUT”操作)。
最后,这个 API 可以工作,但新的固定快捷方式图标在右下角有应用程序图标。即您在 API 中提供了一些图标,但启动器上的最终快捷方式图标具有附加应用程序图标。
我知道这是专门为通知用户哪个应用程序创建了快捷方式而添加的。
但是有什么办法可以删除这个图标并显示我提供的图标ShortcutManager.requestPinShortcut (ShortcutInfo shortcut,IntentSender resultIntent)
吗?
更新 1
我的应用程序的许多用户认为我专门这样做(有些用户甚至尝试购买专业模式来禁用此功能)。所以我真的很想找到任何可能的解决方法,正如我从 Oreo 源代码中所了解的那样 - 发生这种情况是因为启动器应用程序请求带有徽章的快捷方式图标。因此只能在启动器端进行有效修复。
我还尝试欺骗系统功能以获取带有徽章的快捷方式图标 - 当您使用 requestPinShortcut 时,系统会自动将您的应用程序 ID 添加到快捷方式信息中,我试图避免这种情况并提供 0 而不是有效的应用程序 ID,但似乎某处低级别这被阻止并且不会创建快捷方式。
另一个尝试:将应用程序图标设置为透明,这样可以正常工作,但看起来不太酷(您的应用程序图标为空)。所以我尝试创建没有主要活动但应用程序图标为空的单独应用程序 - 在这种情况下系统崩溃:)
最后我只能找到一种解决方法 - 如果用户不在应用程序中添加快捷方式,而是通过从小部件流添加那么快捷方式图标不会改变。我向我的用户提供了这个解决方案。
android - 如何删除固定的快捷方式?
背景
从 Android O 开始,可以创建固定快捷方式,它(在支持的启动器上)会显示一个对话框来确认它们的创建:
文件:
https://developer.android.com/reference/android/content/pm/ShortcutManager.html https://developer.android.com/guide/topics/ui/shortcuts.html
问题
有时,固定的快捷方式不再相关。例如,它指向不再存在的东西。
在这种情况下,我希望能够将其删除。
我试过的
我认为下一个代码可以做到这一点,但事实并非如此,因为它可能与动态快捷方式有关,这是另一回事:
问题
如何删除固定的快捷方式?甚至可能吗?
更新:似乎不可能,正如谷歌在这里提到的那样。
到目前为止,这个 API 对我来说似乎很受限制,因为它有很多缺点:
- 无法从资源 ID 创建创建的图标图像。
- 在启动器上,创建的图标有一个创建它的应用程序的小图标。
- 该图标无法通过 API 删除(仅禁用),因此如果您创建了一个指向另一个应用程序的图标,并且该应用程序已被删除,您将无法删除它。
- 创建不能在后台进行,因为它需要一个确认对话框。它也不能批量创建。只有一个接一个。
- 如果您的应用被删除,您的应用创建的所有固定快捷方式都将被删除。
所以,我现在的问题是:
是否有任何方法可以使用以前的 API 创建和删除快捷方式,使用 adb 命令,如果需要,使用 root ?
是否可以使用 adb 命令删除特定的固定快捷方式,如果需要,可以使用 root 删除?
android - 如何删除 Android Oreo 中固定的快捷方式徽章?
如何在 Android Oreo 中添加屏幕快捷方式,我尝试了动态、静态和固定快捷方式方法,但是在安装应用程序以及徽章图标时,主屏幕中只有固定快捷方式,问题是我无法删除或隐藏应用快捷方式的徽章,我需要创建一个简单整洁的应用快捷方式,如“清洁主快捷方式”
android - 注册启动器以接受固定的快捷方式
我正在创建一个自定义 Android 启动器。我希望它支持固定快捷方式。调用时,即使我的自定义启动器是默认的ShortcutManager.isRequestPinShortcutSupported()
,它也会返回。false
为了让我的启动器接受固定的快捷方式,我需要做什么?是否缺少权限?
android - 为什么我的代码没有在 Android 8+ (Oreo+) 中启动我的应用程序的固定快捷方式?
我正在尝试固定我的应用程序的一些动态快捷方式,它们将在用户创建自定义时间时创建。
我有两个版本的代码,我正在使用JavaScriptInterface从WebView启动代码,但它们都没有按预期工作,因为其中一个正在尝试打开 Play 商店,而第二个说:“应用程序没有'不存在”当我从应用程序创建快捷方式时。
这个正在启动Play 商店:
这是说该应用程序不存在:
我尝试了第三个代码,但那个代码试图打开任何不是我自己的应用程序的应用程序。有没有人经历过类似的事情?或者知道我错过了什么?
我遵循了多个教程和示例,例如:
谢谢你的支持。
PS:
- 我所有的测试都是在 Android Pie 下完成的。
- 我已经用 C# 在 Xamarin.Android 中构建了代码,但是如果您对 Kotlin 或 Java 有想法,我可以迁移它。
android - 在启动器中弹出之前禁用Android固定快捷方式
我的团队在使用 Android 固定快捷方式时遇到了两难境地。
这是重现问题的方法
单击按钮以触发固定快捷方式创建:https://developer.android.com/reference/android/content/pm/ShortcutManager#requestPinShortcut(android.content.pm.ShortcutInfo,%20android.content.IntentSender) 转到显示我们产品的页面。在该页面上,触发禁用快捷方式的操作:https://developer.android.com/reference/android/content/pm/ShortcutManager#disableShortcuts(java.util.List%3Cjava.lang.String%3E) 转到设备启动器。等待创建的快捷方式第一次弹出。预期行为:固定的快捷方式弹出并被禁用实际行为:固定的快捷方式弹出,但它处于活动状态
如果我按顺序执行步骤 1、2、3,我会看到“实际行为”,这是一种糟糕的 UX 体验。如果我将 2 和 3 颠倒过来。换句话说,按照 1、3、2 的顺序,结果就是预期的行为。不同之处在于我们是否允许在禁用快捷方式之前弹出固定的快捷方式。
以下是我的假设(我没有找到支持我假设的在线文档): 固定快捷方式创建直到它在启动器上弹出时才完成。当我在第 2 步按顺序 1、2、3 进行测试时,固定的快捷方式创建尚未完成,这就是 disableShortCut 无法正常工作的原因。
创建固定快捷方式后,我们的产品旨在将用户引导至我们的显示页面,而不是将用户引导至启动器。有什么优雅的方法来处理这种情况吗?
android - 如何在我的颤振应用程序中创建 android 固定的聊天快捷方式?
我正在为我的项目编写一个聊天应用程序。我想包含类似 WhatsApp 的功能,我们可以通过单击添加快捷方式来创建聊天的主屏幕快捷方式。
没有插件,所以我想到了使用 PlatformChannel 并使用它调用本机 Kotlin 代码。但是我不知道如何在 Kotlin 中编写本机 android,所以我搜索了相同的代码。
我找到了官方文档,但是他们的例子不能单独工作,因为它假设他们已经是一个 id 为“shortcut-id”的快捷方式我在其他地方查找了旧问题,YouTube,许多博客网站,但没有一个关于如何创建新的固定快捷方式的明确解决方案或代码,以及一些已过时或在 Java 中已被弃用的方法或代码,它们不是 Kotlin 解决方案。
无法自行运行的官方文档代码
因此,如果您能抽出宝贵的时间并给我一个工作的方式或我可能得到答案的地方,那将是非常有帮助的。