限制 Android Sharesheet 中的可用应用

Limiting the available apps in Android Sharesheet

我已经完成了很多 Google,但我没有看到任何答案。我的要求是我们需要将内容共享到 Microsoft Teams,并且只能共享到 Teams。

显然我们已经看到 Android 的 Sharesheet 是在应用程序之间共享内容的首选方法,但是我还没有找到一种方法来限制哪些应用程序出现在 Sharesheet 中。

有没有办法限制应用程序,即白名单 Teams?

我也在探索使用带有 Teams 包名称的 Intent 的方法。

Is there a way to limit the apps, i.e. whitelist Teams?

制作一个 Intent,通过 setPackageName().

将其范围限制为 Teams 的应用程序 ID

此外,当您调用 startActivity() 时,请确保将您的调用包装在 try/catch 块中并处理用户没有该应用程序的情况他们可以使用,因为您将获得 ActivityNotFoundException.

I'm also exploring the method of using an Intent with the Teams package name.

这是你唯一的选择。这是一个脆弱的选择,因为微软可以提供尽可能多的应用程序,描述为 "Teams",因为微软想要。您可能还会看到 Microsoft 是否有专门的 API 用于与他们的 Teams 应用共享。