簡體   English   中英

在三星設備上的android應用中調用screenrecord無法正常工作

[英]Call screenrecord within android app on samsung device not working

我正在我的應用程序中使用android的screenrecord API。

因此,我讀了好幾篇文章

在扎根的Nexus 5(Android 5.1)上,以下代碼可以正常運行。 這意味着將觸發屏幕記錄,並將視頻成功保存到sdcard。

在扎根的Samsung S6 Edge(Android 5.0.2)上,代碼將在第一次調用readLine()時卡住。 mp4文件已創建,可以在sdcard上找到,但為空。

權限:

<uses-permission android:name="android.permission.WRITE_EXTERNAL_STORAGE" />
<uses-permission android:name="android.permission.READ_EXTERNAL_STORAGE" />
<uses-permission android:name="android.permission.WRITE_INTERNAL_STORAGE" />
<uses-permission android:name="android.permission.READ_INTERNAL_STORAGE" />
<uses-permission android:name="android.permission.MOUNT_UNMOUNT_FILESYSTEMS" />

這是我的代碼:

try {
    Process process = Runtime.getRuntime().exec("su");
    OutputStream stdin = process.getOutputStream();

    InputStream stderr = process.getErrorStream();
    InputStream stdout = process.getInputStream();

    stdin.write(("/system/bin/screenrecord --time-limit 10 /sdcard/recording.mp4\n").getBytes());

    stdin.write("exit\n".getBytes());

    stdin.flush();   //flush stream
    stdin.close(); //close stream

    String line;
    BufferedReader br = new BufferedReader(new InputStreamReader(stdout));
    while ((line = br.readLine()) != null) {
        Log.i("Response: ", line);
        mResults.append(line);
    }
    br.close();

    br = new BufferedReader(new InputStreamReader(stderr));
    while ((line = br.readLine()) != null) {
        Log.e("Error: ", line);
        mErrors.append(line);
    }
    br.close();

} catch(IOException ioe) {
    Log.e(TAG, "IOException: " + ioe.toString());
}

因此,我在網上搜索后發現,可能什么也沒什么要讀。 我在shell命令中添加了“ && echo done”,但仍然沒有任何變化。

我檢查了幾次日志,發現其中兩行包含KNOX

我/ libpersona:KNOX_SDCARD檢查10202

我/ libpersona:KNOX_SDCARD不是角色

我以為KNOX可能阻止我的應用程序寫入sdcard。 因此,我從設備中刪除了KNOX,但仍然出現相同的問題。

我需要在特定的三星設備上運行此代碼。 希望你們中的一些人對如何運行代碼有所了解。

謝謝丹尼爾

我還沒有找到解決上述特定問題的方法。 但是我偶然發現了另一個API,該API幫助我實現了自己的目標並記錄了Android設備的屏幕。

MediaRecorderVirtualDisplay的幫助下,我可以將屏幕捕獲到mp4文件中,並存入sdcard。

暫無
暫無

聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.

 
粵ICP備18138465號  © 2020-2024 STACKOOM.COM