Я новичок в Android, но мне нужно сделать довольно сложное программирование в проекте. Мы хотим написать Android-модуль для Unity Project, потому что нам нужно измерить сердечный ритм пользователя. Сам код уже написан и отлично работает в контексте приложения. Теперь мы должны переписать его в контексте проекта библиотеки.Android: Доступ к функции camera.startPreview() в библиотечном проекте
Я уже понял, как получить доступ к getSystemService(), без GUI-элементов (которых у меня нет из-за того, что это библиотека, а не приложение).
Проблема в том, что когда я звоню camera.startPreview() ничего не происходит. Я попытался сделать следующее:
public HeartRateMeasurement(Context c) {
context = c;
SurfaceView surfaceView = new SurfaceView(c);
SurfaceHolder holder = surfaceView.getHolder();
holder.addCallback(this);
surfaceCreated(holder);
}
Внутри surfaceCreated я установить некоторые параметры (например, флэш-режим «факел»), а затем называют
camera.setPreviewDisplay(holder);
camera = open();
и когда HeartRate-измерение должно начинаться (бывает на кнопку мыши)
camera.startPreview();
Это все (кроме конструктора-материала, который я добавил) работает как шарм, когда делается внутри приложения, но не в библиотеке - нет отл eption, но вспышка просто не включается. В отладочной информации он говорит мне, что «D/Camera: приложение прошло NULL-поверхность», что неудивительно, поскольку нет макета/поверхности.
Мой манифеста выглядит следующим образом:
<manifest xmlns:android="http://schemas.android.com/apk/res/android"
package="tudarmstadt.heartrateplugin">
<application
android:allowBackup="true"
android:label="@string/app_name"
android:supportsRtl="true"></application>
<uses-permission android:name="android.permission.CAMERA" />
<uses-feature android:name="android.hardware.camera" />
<uses-feature android:name="android.hardware.camera.autofocus" />
<uses-feature android:name="android.hardware.camera.flash" />
<uses-feature android:name="android.hardware.Sensor" />
</manifest>
Есть ли способ я могу получить startPreview() работать?
Как это было сделано в работе [здесь] (http://stackoverflow.com/questions/11450048/what-is- root-layout-in-xml)? Возможно ли это из Unity? Я создал очень простое приложение для Android, чтобы проверить это, но позже оно должно использоваться только из Unity. Потому что «не показывающая» часть - это точно моя проблема. Я просто хочу данные камеры, а затем Unity использует это. – Isabella
@ Изабелла, что-то вроде. читайте здесь. http://www.41post.com/5292/programming/unity-and-android-create-an-unity-app-with-a-custom-layout добавить ссылку на поверхность вместо кнопок в ссылке. – Vyacheslav
Спасибо. Я попробую и проверю, работает ли это. – Isabella