unity3d android jar,c# – 访问unity3d中的android jar

博主在尝试从Unity3D的C#代码中访问Android相机手电筒功能时遇到问题。他们已经有一个在Eclipse中工作的Android项目,但在集成到Unity后,手电筒功能无法正常工作。尽管字符串调用成功返回,但实际的手电筒开关操作无效。问题可能与AndroidManifest.xml文件有关,因为当包含该文件时,应用无法启动。博主已经检查过相关论坛和StackOverflow的解决方案,但未找到解决办法。他们希望得到关于如何正确调用手电筒功能的指导。

我有一个相机手电筒的

android项目,从eclipse部署工作正常.我试图从unity3d中的C#代码访问手电筒功能,但它不起作用.为了验证我是否正确调用了android方法,我在同一个activity中创建了一个字符串函数,它正确地返回了字符串.我不熟悉原生的android编码.如果您能看一下代码并帮助我,那将是很棒的.

我知道团结论坛和stackoverflow中有一些线程解释相同,我试图在这些线程上找到解决方案,但没有运气!所以,发布这个帖子..

下面是android MainActivity.java(我从eclipse转换成jar文件并在Unity项目中复制,~Assets / Plugins / Android / bin /),

package com.example.newflash;

import android.hardware.Camera;

import android.hardware.Camera.Parameters;

import android.os.Bundle;

import android.app.Activity;

import android.view.Window;

import android.view.WindowManager;

public class MainActivity extends Activity {

private static Camera camera;

private static Parameters parameters;

@Override

protected void onCreate(Bundle savedInstanceState)

{

super.onCreate(savedInstanceState);

//Hide the window title.

requestWindowFeature(Window.FEATURE_NO_TITLE);

getWindow().addFlags(WindowManager.LayoutParams.FLAG_FULLSCREEN | WindowManager.LayoutParams.FLAG_KEEP_SCREEN_ON);

}

public static String dummyString()

{

return "dummy string";

}

public static void setFlashOn()

{

if (camera == null)

camera = Camera.open();

parameters = camera.getParameters();

parameters.setFlashMode(Parameters.FLASH_MODE_TORCH);

camera.setParameters(parameters);

}

public static void setFlashOff()

{

parameters = camera.getParameters();

parameters.setFlashMode(Parameters.FLASH_MODE_OFF);

camera.setParameters(parameters);

}

}

下面是我的统一C#代码,

using UnityEngine;

using System.Collections;

using System.Collections.Generic;

using System.Runtime.InteropServices;

using System;

public class testJar : MonoBehaviour

{

bool torchon;

AndroidJavaClass testClasslight;

void Start ()

{

torchon = false;

}

void OnGUI ()

{

string teststring = "empty";

AndroidJavaClass testClass = new AndroidJavaClass("com.example.glassplaces.MainActivity");

teststring = testClass.CallStatic("dummyString");

GUI.Label (new Rect (20, 20, 100, 60), teststring);

if(GUI.Button(new Rect (20, 100, 100, 60), "ON"))

{

torchon = true;

}

if(torchon == true)

{

GUI.Label(new Rect(200, 20,100,60), "torch ON");

testClass.CallStatic("setFlashOn");

}

}

}

添加AndroidManifest.xml时访问摄像头的权限,应用程序根本不启动.在从项目中排除xml文件时,“dummyString”方法仍然返回字符串.

下面是AndroidManifest.xml,

package="com.example.newflash"

android:versionCode="1"

android:versionName="1.0" >

android:minSdkVersion="8"

android:targetSdkVersion="18" />

android:allowBackup="true"

android:icon="@drawable/app_icon"

android:label="@string/app_name">

android:name="com.example.newflash.MainActivity"

android:label="@string/app_name" >

下面是Unity在Build& amp; amp; amp; amp; amp; amp; amp; amp; amp; amp; amp; amp;跑,

Unable to find unity activity in manifest. You need to make sure orientation attribut is set to sensor manually.

UnityEditor.BuildPlayerWindow:BuildPlayerAndRun()

如果有人可以帮助我,那就太好了.任何帮助深表感谢.

先感谢您!

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值