我想以编程方式截取 Android 设备的屏幕截图。
我知道这个问题已经被问过很多次了。我知道有两种方法可以做到这一点。
- 使用截图库(但我一直黑屏)。
从根从帧缓冲区获取数据
\dev\graphics\fb0
(但它始终为 0 字节,我不知道存储设备当前屏幕截图的确切位置)。我的首选要求是获得更好的帧速率。我的代码是public void onCreate(Bundle savedInstanceState) { super.onCreate(savedInstanceState); setContentView(R.layout.main); Intent intent = new Intent(); intent.setClass(this, ScreenshotService.class); bindService (intent, new ServiceConnection() { @Override public void onServiceDisconnected(ComponentName name) { } @Override public void onServiceConnected(ComponentName name, IBinder service) { try { asl = IScreenshotProvider.Stub.asInterface(service); } catch (Exception ex) { Log.e("errrorrrrrrrrrrrrr","errrorrrrrrrrrrr", ex); } } }, Context.BIND_AUTO_CREATE); Button b1=(Button) this.findViewById(R.id.widget33); b1.setOnClickListener(new OnClickListener() { public void onClick(View view) { try { asl.takeScreenshot(); } catch (RemoteException ex) { Log.e("nnnnerrrrrrrrrrrrrr","errrrrrrrrrrrrr",ex); } } }); }'