【问题标题】:Capture a screenshot and share it with social media截取屏幕截图并与社交媒体分享
【发布时间】:2012-07-02 15:01:36
【问题描述】:

这里是代码的摘录。我可以编译它,但是程序在手机/模拟器上崩溃了。

    Bitmap bitmap;
    View v1 = MyView.getRootView();
    v1.setDrawingCacheEnabled(true);
    bitmap = Bitmap.createBitmap(v1.getDrawingCache());
    v1.setDrawingCacheEnabled(false);

    String path = Images.Media.insertImage(getContentResolver(), bitmap,
            "title", null);
    Uri screenshotUri = Uri.parse(path);

    final Intent socialIntent = new Intent(Intent.ACTION_SEND);
    socialIntent.addFlags(Intent.FLAG_GRANT_READ_URI_PERMISSION);

    socialIntent.putExtra(Intent.EXTRA_STREAM, screenshotUri);
    socialIntent.setType("image/png");

有人知道怎么做吗?我想截取屏幕截图并让用户分享,如果他/她喜欢的话。其他一切正常,只是我无法获得的屏幕截图。

【问题讨论】:

    标签: java android android-intent screenshot share


    【解决方案1】:

    获得屏幕截图的唯一方法是直接访问内核级别的帧缓冲区,这又需要根访问权限来完成此操作并从那里提取数据以构成图形那就是屏幕本身。

    这需要一个修改过的 ROM 或具有 root 权限才能这样做。索尼,我知道,做吧,他们有这样的设施,因为修改了 ROM,所以在没有 root 的情况下这样做,在电源菜单中,有一个选项“截屏”。 CM 是另一个需要 root 的。

    ICS 中有一个可用的工具,它具有可用于执行此操作的程序化 API,请参阅此 answer,但对于早期版本,您就不走运了。

    【讨论】:

    • 有点正确,但与此代码尝试执行的操作无关。相反,此代码试图将应用程序自己的视图层次结构写为位图(即“屏幕截图”本身)。如果操作正确,这是可能的。
    猜你喜欢
    • 1970-01-01
    • 1970-01-01
    • 2012-12-06
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    相关资源
    最近更新 更多