1
0
mirror of https://github.com/godotengine/godot.git synced 2025-11-04 12:00:25 +00:00

Add CameraFeed support for Android

Co-authored-by: KOGA Mitsuhiro <shiena.jp@gmail.com>
This commit is contained in:
Leo de Penning
2025-04-18 22:20:21 +09:00
committed by KOGA Mitsuhiro
parent 209a446e36
commit 296ca79b9d
12 changed files with 666 additions and 2 deletions

View File

@@ -37,6 +37,12 @@
<!-- Temp removal of the 'REQUEST_INSTALL_PACKAGES' permission as it's currently forbidden by the Horizon OS store -->
<uses-permission android:name="android.permission.REQUEST_INSTALL_PACKAGES" tools:node="remove" />
<!-- Passthrough feature -->
<uses-feature
android:name="android.hardware.camera2.any"
android:required="false"/>
<uses-permission android:name="horizonos.permission.HEADSET_CAMERA"/>
<application>
<activity

View File

@@ -12,6 +12,9 @@
<uses-feature
android:glEsVersion="0x00030000"
android:required="true" />
<uses-feature
android:name="android.hardware.camera"
android:required="false" />
<uses-permission
android:name="android.permission.MANAGE_EXTERNAL_STORAGE"
@@ -26,6 +29,7 @@
<uses-permission android:name="android.permission.RECORD_AUDIO" />
<uses-permission android:name="android.permission.VIBRATE" />
<uses-permission android:name="android.permission.REQUEST_INSTALL_PACKAGES" />
<uses-permission android:name="android.permission.CAMERA" />
<application
android:allowBackup="false"

View File

@@ -34,6 +34,7 @@ import org.godotengine.godot.error.Error;
import org.godotengine.godot.input.GodotEditText;
import android.app.Activity;
import android.content.Context;
import android.content.Intent;
import android.content.pm.ActivityInfo;
import android.graphics.Rect;
@@ -46,7 +47,9 @@ import android.util.DisplayMetrics;
import android.util.Log;
import android.view.Display;
import android.view.DisplayCutout;
import android.view.Surface;
import android.view.WindowInsets;
import android.view.WindowManager;
import androidx.core.content.FileProvider;
@@ -306,6 +309,19 @@ public class GodotIO {
}
}
public int getDisplayRotation() {
WindowManager windowManager = (WindowManager)activity.getSystemService(Context.WINDOW_SERVICE);
int rotation = windowManager.getDefaultDisplay().getRotation();
if (rotation == Surface.ROTATION_90) {
return 90;
} else if (rotation == Surface.ROTATION_180) {
return 180;
} else if (rotation == Surface.ROTATION_270) {
return 270;
}
return 0;
}
public void setEdit(GodotEditText _edit) {
edit = _edit;
}