Как захватить изображение экрана устройства Android на ПК без использования DDMS ...? - PullRequest
0 голосов
/ 16 марта 2011

Я хочу сделать снимки экрана с мобильного телефона andriod на ПК с помощью некоторого кода для Samsung Galaxy, подключенного через USB. Я не хочу использовать DDMS, предоставляемый Andriod SDK. Я должен написать некоторый код в Java, чтобы захватить то же самое. Помоги мне, если кто-нибудь знает об этом.

Ответы [ 3 ]

1 голос
/ 16 марта 2011

Вы можете взглянуть на код Droid @ Screen , чтобы узнать, как снимать скриншоты с устройства с помощью USB. Обратите внимание, что эта поддержка недокументирована и все еще требует, чтобы Android SDK был установлен на хост-компьютере.

0 голосов
/ 30 января 2013
First call this method oncreate();   
 new screenshot().execute();


after create given class:


        class screenshot extends AsyncTask<String, String, String> {


            @Override
            protected void onPreExecute() {

                super.onPreExecute();


            }

            @Override
            protected String doInBackground(String... args) {

                Log.e("Screenshot", "Called");

                mView = view.getRootView();
                mView.setDrawingCacheEnabled(true);
                b = mView.getDrawingCache();

                String extr = Environment.getExternalStorageDirectory().toString();
                File myPath = new File(extr, getString("myapp")
                        + ".jpg");
                Log.e("My_PatH", "" + myPath);
                if (myPath.exists()) 
                    myPath.delete();
                FileOutputStream fos = null;
                try {
                    fos = new FileOutputStream(myPath);
                    b.compress(Bitmap.CompressFormat.JPEG, 100, fos);
                    fos.flush();
                    fos.close();
                    MediaStore.Images.Media.insertImage(getContentResolver(), b,
                            "Screen", "screen");
                    Log.e("Bitmap", "" + b);
                    Log.e("myPath", "" + myPath);
                } catch (FileNotFoundException e) {

                    e.printStackTrace();
                } catch (Exception e) {

                    e.printStackTrace();
                }
                return null;
            }

            protected void onPostExecute(String args) {

            }
        }
0 голосов
/ 16 марта 2011

Использование monkeyrunner и подобного сценария сделает эту работу.

#! /opt/android-sdk-linux_86/tools/monkeyrunner

# Imports the monkeyrunner modules used by this program
from com.android.monkeyrunner import MonkeyRunner, MonkeyDevice
# Connects to the current device, returning a MonkeyDevice object
device = MonkeyRunner.waitForConnection()
# Takes a screenshot
result = device.takeSnapshot()
# Writes the screenshot to a file
result.writeToFile('/tmp/device.png','png')
...