捕获屏幕截图并与社交媒体共享

时间:2012-07-02 15:01:36

标签: java android android-intent screenshot share

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

    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");

任何人都知道该怎么做?我想捕捉截图并让用户分享它,如果他/她喜欢。其他一切都有效,这只是我无法获得的截图。

1 个答案:

答案 0 :(得分:0)

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

这需要一个用于此目的的modded ROM或具有root权限。索尼,我知道,这样做,他们有这样的设施,没有根,因为ROM被修改,在电源菜单中,有一个选项'截图'。 CM是另一个需要root的。

ICS中有一个提供程序化API的工具可以执行此操作,请参阅此answer,但对于早期版本,您运气不佳。