问题标签 [android-activity-alias]
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 - 我可以使用活动别名作为 NFC 标签上的 AAR 字段吗?
我试图这样做:
如果我在标签中将 com.blablabla 写为 AAR,一切正常,但如果我写 .AnAlias 只会将我带到 Play 商店。我试图在实际活动中删除意图(事实上,我已经尝试了所有意图的组合),但仍然存在同样的问题。
我做错了什么,还是我误解了别名的用例?
java - 是否可以在运行时添加新的 ActivityAliases?
在AndroidManifest.xml
中,可以定义多个<activity-alias>
元素。但是,ActivityAlias
java 类并不建议可以在运行时定义这些别名。
是否可以在运行时向应用程序添加新的活动别名?
android - Activity-Alias 在应用更新时被移除
我已经实现了两个activity-alias
用户应该能够在运行时启用或禁用。
我不希望一开始就启用它们,以免弄乱用户设备的应用程序屏幕。但在运行时,用户应该能够启用别名。我通过以下方式做到这一点PackageManager
:
这在开始时就像魅力一样,但是当我安装了我的应用程序的更新时,别名再次被禁用。如何防止系统通过清单覆盖启用状态?我不希望用户一开始就使用 Launcher,也不希望用户在更新后重新创建所有别名快捷方式。
我想我需要类似于 的东西PackageManager.COMPONENT_ENABLED_STATE_DISABLED_USER
,但仅适用于启用状态。
谢谢!
android - 从 TargetActivity 中提取/区分 ActivityAlias 名称
我有多个ActivityAliases
都从一个开始TargetActivity
。在我的内部,我TargetActivity
尝试区分启动TargetActivity
.
别名被定义Manifest
为可启动项(意图过滤器),它将在主屏幕上显示为快捷方式。用户将单击快捷方式,android 将启动我在“ android:targetActivity=..
”标签中定义的活动。
为此,我目前componentName
从Intent
提供给我的 TargetActivity 并使用className()
.
喜欢:
这适用于很多设备。但目前我在OnePlus上看到了一些故障。在该设备上,我的技术仅返回我的 TargetActivity 的类名,因此我无法根据用户启动的别名来交付操作。
有没有其他可靠的方法可以ActivityAlias
用来启动TargetActivity
?它不需要是名字本身,只要我能区分它们。我不想为每个 Alias 创建专用的 TargetActivities!
谢谢!
Ps.:我看到了另一种方式,它使用PackageManager来检索activityInfo并使用Activity.name。但我怀疑这会返回与我的第一种方法不同的东西。
我还尝试了元数据:
编辑:
不幸的是,这种方法不适用于所有设备。alias-className
如果从 activity.component
解析的返回target-activity
,那么元数据方法也会失败。
我继续寻找答案并找到了一个很好的解决方法来区分我在 TargetActivty 中的别名。
您可以在 ActivityAlias 标记中提供元数据,如下所示:
这里的重要部分是:
这是在<activity-alias>
here</activity-alias>
标签内。
要提取元数据,您可以使用 TargetActivity 从 PackageManager 获取 ActivityInfo:
并通过以下方式提取元数据:
编辑:
使用调试器检查Activity
类,它包含一个mActivityInfo
不同于ActivityInfo
返回的字段,getPackageManager().getActivityInfo()
因此您可以使用反射提取它并检查它的名称。
ActivityInfo
注意:返回的似乎getPackageManager().getActivityInfo()
是. 所以,也许这种方法不能解决问题:mActivityInfo
Activity
android - ActivityAlias 标签未取自资源
我的应用程序中有两个启动器,一个是正常activity
的,带有用于启动器/主的意图过滤器,另一个是activityAlias
.
对于这两者,我manifest
通过我的strings.xml
资源提供标签。这样做的原因是,我想在不同的语言环境中提供不同的标签。
不幸的是,只有 my 的标签activity
会根据 android 设置中选择的语言进行相应更改。
这是为什么?
和别名
android - 在 5.0+ 中通过活动别名更改启动器图标后,应用程序无法从最近的应用程序启动
使用方法将应用程序启动器图标更改为新图标后activity-alias
,我通过后退按钮退出应用程序,当我尝试从 android 5.0+ 中的最近应用程序(最近的任务)启动应用程序时,应用程序将无法启动。在某些源代码中,它敬酒:“无法启动”,就我而言,甚至不敬酒。
但是有一个应用程序Textra SMS,它可以更改启动器图标,更改图标后,应用程序即使从最近的应用程序也可以正常启动。
如何解决这个问题?
这是AndroidManifest.xml
代码:
android - 意图ActivityNotFoundException 失败
我为一个活动写了一个活动别名:
按照这个答案,我正在尝试启动该活动别名:
由此产生的名称MainActivity.class.getPackage().getName()
是com. company.htmlapp.main
。
但它在 startActivity(i) 行中失败并带有 ActivityNotFoundException:
编辑:
尝试使用 ComponentName(activityPackage, ".main.MainActivityAlias"); 不同的包产生的错误是相同的:
android - apk 的 Aapt 转储标记未列出活动别名的任何可启动活动
我最近通过以下更改更改了我的 AndroidManifest.xml:
- 将我的主要启动器活动的名称更改为 NewMainActivity。
- 添加了一个活动别名,旧活动名称指向新活动。
现在,当我这样做时aapt dump badging <apk-path>| grep launchable-activity
,没有输出。这发生在上述更改之后。
- 我如何解决它?
- 是否有任何新版本的 aapt(我正在使用 Android 资产打包工具,v0.2-3051502)解决了这个问题?
android - 活动别名启用单顶
在我的应用程序中有一个别名活动:MyActivity
并MyAliasActivity
在清单中注册。别名的目的是提供额外的意图过滤器。用户可以在运行时启用/禁用此功能。活动和别名有singleTop
修饰符。
但是,如果我在禁用组件的情况下启动我的应用程序(MyActivity
在顶部),然后我启用它,并广播与意图过滤器匹配的事件,MyActivity
再创建一次(通过别名) - 我有两个不想要的 backstack。
他能以任何方式处理吗?我只需要在后台进行一项活动。
android - 使用活动别名不会反映在应用程序图标上
尝试使用活动别名为我的应用程序使用多个图标。这是我的清单代码:
这是我在 oncreate 启动画面活动中的代码:
现在进行测试时,我将com.sharesmile.share.splashscreen.SplashScreenpinkathon更改为com.sharesmile.share.splashscreen.SplashScreenmain它没有反映。似乎是什么问题?