问题标签 [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.

0 投票
1 回答
576 浏览

android - 我可以使用活动别名作为 NFC 标签上的 AAR 字段吗?

我试图这样做:

如果我在标签中将 com.blablabla 写为 AAR,一切正常,但如果我写 .AnAlias 只会将我带到 Play 商店。我试图在实际活动中删除意图(事实上,我已经尝试了所有意图的组合),但仍然存在同样的问题。

我做错了什么,还是我误解了别名的用例?

0 投票
2 回答
65 浏览

java - 是否可以在运行时添加新的 ActivityAliases?

AndroidManifest.xml中,可以定义多个<activity-alias>元素。但是,ActivityAliasjava 类并不建议可以在运行时定义这些别名。

是否可以在运行时向应用程序添加新的活动别名?

0 投票
2 回答
1349 浏览

android - Activity-Alias 在应用更新时被移除

我已经实现了两个activity-alias用户应该能够在运行时启用或禁用。

我不希望一开始就启用它们,以免弄乱用户设备的应用程序屏幕。但在运行时,用户应该能够启用别名。我通过以下方式做到这一点PackageManager

这在开始时就像魅力一样,但是当我安装了我的应用程序的更新时,别名再次被禁用。如何防止系统通过清单覆盖启用状态?我不希望用户一开始就使用 Launcher,也不希望用户在更新后重新创建所有别名快捷方式。

我想我需要类似于 的东西PackageManager.COMPONENT_ENABLED_STATE_DISABLED_USER,但仅适用于启用状态。

谢谢!

0 投票
1 回答
1616 浏览

android - 从 TargetActivity 中提取/区分 ActivityAlias 名称

我有多个ActivityAliases都从一个开始TargetActivity。在我的内部,我TargetActivity尝试区分启动TargetActivity.

别名被定义Manifest为可启动项(意图过滤器),它将在主屏幕上显示为快捷方式。用户将单击快捷方式,android 将启动我在“ android:targetActivity=..”标签中定义的活动。

为此,我目前componentNameIntent提供给我的 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()是. 所以,也许这种方法不能解决问题:mActivityInfoActivity

0 投票
0 回答
61 浏览

android - ActivityAlias 标签未取自资源

我的应用程序中有两个启动器,一个是正常activity的,带有用于启动器/主的意图过滤器,另一个是activityAlias.

对于这两者,我manifest通过我的strings.xml资源提供标签。这样做的原因是,我想在不同的语言环境中提供不同的标签。

不幸的是,只有 my 的标签activity会根据 android 设置中选择的语言进行相应更改。

这是为什么?

和别名

0 投票
1 回答
387 浏览

android - 在 5.0+ 中通过活动别名更改启动器图标后,应用程序无法从最近的应用程序启动

使用方法将应用程序启动器图标更改为新图标后activity-alias,我通过后退按钮退出应用程序,当我尝试从 android 5.0+ 中的最近应用程序(最近的任务)启动应用程序时,应用程序将无法启动。在某些源代码中,它敬酒:“无法启动”,就我而言,甚至不敬酒。

但是有一个应用程序Textra SMS,它可以更改启动器图标,更改图标后,应用程序即使从最近的应用程序也可以正常启动。

如何解决这个问题?

这是AndroidManifest.xml代码:

0 投票
1 回答
818 浏览

android - 意图ActivityNotFoundException 失败

我为一个活动写了一个活动别名:

按照这个答案,我正在尝试启动该活动别名:

由此产生的名称MainActivity.class.getPackage().getName()com. company.htmlapp.main

但它在 startActivity(i) 行中失败并带有 ActivityNotFoundException:

编辑:

尝试使用 ComponentName(activityPackage, ".main.MainActivityAlias"); 不同的包产生的错误是相同的:

0 投票
0 回答
368 浏览

android - apk 的 Aapt 转储标记未列出活动别名的任何可启动活动

我最近通过以下更改更改了我的 AndroidManifest.xml:

  • 将我的主要启动器活动的名称更改为 NewMainActivity。
  • 添加了一个活动别名,旧活动名称指向新活动。

现在,当我这样做时aapt dump badging <apk-path>| grep launchable-activity,没有输出。这发生在上述更改之后。

  • 我如何解决它?
  • 是否有任何新版本的 aapt(我正在使用 Android 资产打包工具,v0.2-3051502)解决了这个问题?
0 投票
1 回答
506 浏览

android - 活动别名启用单顶

在我的应用程序中有一个别名活动:MyActivityMyAliasActivity在清单中注册。别名的目的是提供额外的意图过滤器。用户可以在运行时启用/禁用此功能。活动和别名有singleTop修饰符。

但是,如果我在禁用组件的情况下启动我的应用程序(MyActivity在顶部),然后我启用它,并广播与意图过滤器匹配的事件,MyActivity再创建一次(通过别名) - 我有两个不想要的 backstack。

他能以任何方式处理吗?我只需要在后台进行一项活动。

0 投票
1 回答
223 浏览

android - 使用活动别名不会反映在应用程序图标上

尝试使用活动别名为我的应用程序使用多个图标。这是我的清单代码:

这是我在 oncreate 启动画面活动中的代码:

现在进行测试时,我将com.sharesmile.share.splashscreen.SplashScreenpinkathon更改为com.sharesmile.share.splashscreen.SplashScreenmain它没有反映。似乎是什么问题?