簡體   English   中英

Android Camera2可執行文件無法獲取幀

[英]Android Camera2 executable failed to get frames

我有一個Camera2 NDK代碼可以打開相機並獲取圖像。

該代碼可以通過Android應用程序/服務正常運行,但是如果我將其編譯並作為可執行文件運行,則相機會打開,但不會得到任何幀。

任何想法? 有人成功做到了嗎?


注意

  1. 我通過“ AImageReader_new”創建自己的AImageReader
  2. 我通過“ AImageReader_getWindow”創建自己的ANativeWindow

注意2(添加)

電話有點不同

對於Android應用程序/服務,調用如下:

public void onCreate() {
       JNIBridge.startPreview(null);
}
public void onDestroy() {
       JNIBridge.stopPreview();
}

對於可執行文件:

int main()
{
Java_com_y30_nativecamera2_JNIBridge_startPreview(nullptr, nullptr, nullptr);

for(int i = 0; i < 10; ++i)
{
    std::this_thread::sleep_for(std::chrono::milliseconds(1000));
}

Java_com_y30_nativecamera2_JNIBridge_stopPreview(nullptr, nullptr);

return 0;
}

UPDATE

我在多個Android設備上再次對其進行了測試。

S8 / S9 +(使用Andorid 8.0.0)正在復制。(“ ACameraManager_openCamera”狀態為OK,但沒有任何幀)

Pixel(使用Android 9)方法“ ACameraManager_openCamera”失敗。

10-09 10:45:04.933   933  1592 I CameraService: CameraService::connect call (PID -1 "", camera ID 0) for HAL version default and Camera API version 2
10-09 10:45:04.933   933  1592 W ServiceManager: Permission failure: android.permission.CAMERA from uid=2000 pid=19606
10-09 10:45:04.933   933  1592 E CameraService: Permission Denial: can't use the camera pid=19606, uid=2000
10-09 10:45:04.933 19606 19606 E ACameraManager: openCamera: connect camera device failed: Status(-8): '1: validateClientPermissionsLocked:906: Caller "" (PID 2000, UID 19606) cannot open camera "0" without camera permission'

UPDATE2

我還使用msm8996 EVB(使用Android 7.1.1)對其進行了測試:

(1)我遇到了Pixel2之類的權限問題。

(2)我在運行su時解決了權限問題(打開了攝像頭),但是我還沒有得到任何圖像。

我還沒有看到您的代碼。 根據您的描述,您已正確完成了所有操作。 如果添加以下內容,它應該可以工作。

#include <binder/ProcessState.h>

...
main()
{
...
    android::ProcessState::self()->startThreadPool();
...
    Camera open, AImageReader_new, etc ...
...
    Close Camera
...
}

還將libbinder添加到Android.mk LOCAL_SHARED_LIBRARIES。

通常,NDK不支持Android Shell可執行文件,因此設備SELinux策略可能會以某種方式阻止其使用。

暫無
暫無

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

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