[英]How to launch Camera app from Unity in android?
I want to launch camera app in android from Unity3d app.我想从 Unity3d 应用程序在 android 中启动相机应用程序。 I can do it by building an Android app through Android Studio.
我可以通过 Android Studio 构建一个 Android 应用程序来实现。 I want to create a jar plugin of that android studio project and call the code through Unity game.
我想创建一个 android studio 项目的 jar 插件并通过 Unity 游戏调用代码。
Unity C# code统一 C# 代码
public class UnityAndroidPluginExample : MonoBehaviour
{
AndroidJavaObject javaClass;
public void CallPlugin()
{
javaClass = new AndroidJavaObject("com.mycompany.pluginexample.CameraPluginClass");
javaClass.Call("LaunchCameraApp");
}
}
Android Studio Code安卓工作室代码
package com.mycompany.pluginexample;
import android.content.Intent;
import android.provider.MediaStore;
import android.util.Log;
import androidx.appcompat.app.AppCompatActivity;
public class CameraPluginClass extends AppCompatActivity
{
public void LaunchCameraApp()
{
Intent intent = new Intent(MediaStore.ACTION_IMAGE_CAPTURE);
startActivity(intent);
}
}
I am getting error我收到错误
AndroidJavaException: java.lang.ClassNotFoundException:com.mycompany.pluginexample.CameraPluginClass
AndroidJavaException: java.lang.ClassNotFoundException:com.mycompany.pluginexample.CameraPluginClass
AndroidJavaException: java.lang.NoClassDefFoundError:Failed resolution of: Landroidx/appcompat/app/AppCompatActivity
AndroidJavaException:java.lang.NoClassDefFoundError:解析失败:Landroidx/appcompat/app/AppCompatActivity
Here is my Android Studio code that worked for Android这是我适用于 Android 的 Android Studio 代码
btnCaptureImage.setOnClickListener(new View.OnClickListener() {
@Override
public void onClick(View view) {
Intent intent = new Intent(MediaStore.ACTION_IMAGE_CAPTURE);
startActivityForResult(intent, 0);
}
});
Please help, I am stuck here.请帮忙,我被困在这里。 In short, I cannot call a method of the Java class that extends AppCompatACtivity.
简而言之,我无法调用扩展 AppCompatACtivity 的 Java 类的方法。 If I remove
extends AppCompatActivity
and call a method in that Java Class from Unity, it works, only if I use extends AppCompatActivty
, I cannot call any method inside that class from Unity.如果我删除
extends AppCompatActivity
并从 Unity 调用该 Java 类中的方法,它会起作用,只有当我使用extends AppCompatActivty
,我才能从 Unity 调用该类中的任何方法。 I am using Unity version 2019.1.7f1.我正在使用 Unity 版本 2019.1.7f1。
Any help would be much appreciated.任何帮助将非常感激。
Changing "AppCompatActivity" to just "Activity" worked for me, though I'm not sure why.将“AppCompatActivity”更改为“Activity”对我有用,但我不确定为什么。 If you ever figure out why, let me know!
如果你知道为什么,请告诉我!
声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.