нужно запускать андроид приложение камера при нажатии на кнопку в моем юнити приложении

пожалуйста, мне нужна хоть какая-то обратная связь от более опытных пользователей... вот java класс:

public class LoadCameraPlugin extends AppCompatActivity
{

@Override
protected void onCreate(Bundle savedInstanceState)
 {
    super.onCreate(savedInstanceState);

    Intent intent = new Intent(MediaStore.ACTION_IMAGE_CAPTURE);
    startActivity(intent);
 }

}

вот интерфейс:

package com.example.launchcameraplugin;

public interface ILoadCameraPluginCallback
{
   void onCreate(Bundle savedInstanceState);
}

вот C# callback код:

   public interface ILoadCameraPluginCallback
   {
      void LaunchCameraApp();
   }

 public class LoadCameraPluginCallback : AndroidJavaProxy, ILoadCameraPluginCallback
 {
     public event System.Action launchCameraApp;

     public LoadCameraPluginCallback() : base("com.example.launchcameraplugin.ILoadCameraPluginCallback") { }

   public void LaunchCameraApp()
   {
      launchCameraApp?.Invoke();
   }
 } 

вот C# код который вызывает java метод:

public class LoadCameraPlugin : IDisposable
{

    private AndroidJavaObject plugin;
    private LoadCameraPluginCallback callback;

   public LoadCameraPlugin()
   {
     plugin = new AndroidJavaObject("com.example.launchcameraplugin.LoadCameraPlugin");
     callback = new LoadCameraPluginCallback();  
   }



  public void Start()
  {
     plugin.Call("LaunchCameraApp", callback);
  }



   public void Dispose()
   {
     if(plugin != null)
     {
         plugin.Dispose();
     }
     plugin = null;
   }

}

вот я с помощью кнопки запускаю метод в том скрипте где я вызываю java метод который запускает камеру:

   public class StartPluginToLoadCameraByButton : MonoBehaviour
   {
     public Button button;
     public GameObject ButtonOjbect;
     private LoadCameraPlugin plugin;


    private void Start()
    {
       plugin = new LoadCameraPlugin();
       button = GetComponent<Button>();
       button.onClick.AddListener(StartPlugin);
    }

    public void StartPlugin()
    {
      plugin.Start();
    } 

  }

я открыл мой апк файл через андроид студио и нашел там файл андроид манифест:

  <?xml version="1.0" encoding="utf-8"?>
<manifest
xmlns:android="http://schemas.android.com/apk/res/android"
android:versionCode="1"
android:versionName="0.1"
android:installLocation="2"
android:compileSdkVersion="29"
android:compileSdkVersionCodename="10"
package="com.AlexCompany.MyOS"
platformBuildVersionCode="29"
platformBuildVersionName="10">

<uses-sdk
    android:minSdkVersion="24"
    android:targetSdkVersion="29" />

<supports-screens
    android:anyDensity="true"
    android:smallScreens="true"
    android:normalScreens="true"
    android:largeScreens="true"
    android:xlargeScreens="true" />

<uses-feature
    android:glEsVersion="0x20000" />

<uses-permission
    android:name="android.permission.INTERNET" />

<uses-permission
    android:name="android.permission.VIBRATE" />

<uses-permission
    android:name="android.permission.CAMERA" />

<uses-feature
    android:name="android.hardware.camera"
    android:required="false" />

<uses-feature
    android:name="android.hardware.camera.autofocus"
    android:required="false" />

<uses-feature
    android:name="android.hardware.camera.front"
    android:required="false" />

<uses-permission
    android:name="android.permission.WRITE_EXTERNAL_STORAGE" />

<uses-feature
    android:name="android.hardware.touchscreen"
    android:required="false" />

<uses-feature
    android:name="android.hardware.touchscreen.multitouch"
    android:required="false" />

<uses-feature
    android:name="android.hardware.touchscreen.multitouch.distinct"
    android:required="false" />

<uses-feature
    android:name="android.hardware.camera.ar"
    android:required="true" />

<uses-feature
    android:name="com.google.ar.core.depth"
    android:required="true" />

<queries>

    <package
        android:name="com.google.ar.core" />
</queries>

<application
    android:label="@ref/0x7f060005"
    android:icon="@ref/0x7f040000"
    android:banner="@ref/0x7f010000"
    android:isGame="true"
    android:extractNativeLibs="true">

    <activity
        android:theme="@ref/0x7f070001"
        android:name="com.unity3d.player.UnityPlayerActivity"
        android:launchMode="2"
        android:screenOrientation="0"
        android:configChanges="0x40003fff"
        android:hardwareAccelerated="false">

        <intent-filter>

            <action
                android:name="android.intent.action.MAIN" />

            <category
                android:name="android.intent.category.LAUNCHER" />

            <category
                android:name="android.intent.category.LEANBACK_LAUNCHER" />
        </intent-filter>

        <meta-data
            android:name="unityplayer.UnityActivity"
            android:value="true" />
    </activity>

    <meta-data
        android:name="unity.splash-mode"
        android:value="0" />

    <meta-data
        android:name="unity.splash-enable"
        android:value="true" />

    <meta-data
        android:name="unity.build-id"
        android:value="faa3eba5-4901-4a5e-8e8f-ed461bf7adc5" />

    <meta-data
        android:name="unityplayer.SkipPermissionsDialog"
        android:value="true" />

    <meta-data
        android:name="com.google.ar.core"
        android:value="required" />

    <meta-data
        android:name="com.google.ar.core.min_apk_version"
        android:value="210210000" />

    <activity
        android:theme="@ref/0x0103023a"
        android:name="com.google.ar.core.InstallActivity"
        android:exported="false"
        android:excludeFromRecents="true"
        android:launchMode="1"
        android:configChanges="0x4a0" />
  </application>
</manifest>     

при нажатии на кнопку ничего не происходит... может есть какая-то ошибка или не логическое действие? правильно ли я работаю с плагином с помощью C# кода? заранее спасибо.


Ответы (0 шт):