【问题标题】:Sharing a screenshot in Android to social media with minimal permissions以最少的权限将 Android 中的屏幕截图分享到社交媒体
【发布时间】:2025-12-22 15:10:09
【问题描述】:

您能否使用 Intent ACTON_SEND 共享屏幕截图而不将其保存到外部存储(如在 getExternalStorageDirectory() 中),而是将其保存到 getFilesDir() 指向的任何位置?甚至更好 - 根本不保存屏幕截图。

或者有更好的方法吗?

我正在尝试将屏幕截图共享添加到 cocos2d-x 游戏中。 我想尽量减少游戏需要被授予的权限,它应该在有和没有 SD 卡的情况下都可以使用。

【问题讨论】:

    标签: android java-native-interface cocos2d-x android-permissions


    【解决方案1】:

    您可以使用 Intent ACTON_SEND 共享屏幕截图...通过将其保存到 getFilesDir() 指向您的任何位置吗?

    您可以使用FileProvider 将来自getFilesDir() 的文件提供给第三方。您将使用从FileProvider 获得的content: Uri,在您的ACTION_SEND IntentEXTRA_STREAM 中。

    甚至更好 - 根本不保存屏幕截图。

    这有点冒险。没有什么能阻止您创建自己的 ContentProvider,它从您的堆空间提供 PNG 以响应 openFile()。但是,如果您的进程在其他应用程序在 PNG 中完成流式传输之前终止,那么您就有麻烦了。

    没有并且 SD 卡可用

    外部存储在大多数 Android 设备上是不可移动的。

    【讨论】:

      最近更新 更多