在unity项目或者AR开发中经常用到二维码的扫描,
如何和vuforia结合呢?
近来研究android平台上的增强现实和二维码扫描结合的案例,主要是使用两个外部插件来实现,其中一个是名为Easy Code Scanner 的二维码扫描插件(网上下载即可);另一个就是高通的增强现实插件(之前有发过一篇博文记录使用过程)。
现在,新建一个项目,先导入其中一个插件包,然后在project 视图中,找到plugins的文件夹,剪切文件夹中的AndroidManifest.xml,可放在任意文件夹(android配置文件,规定了android的访问权限,启动界面等等);接下来再导入另一个插件包。你会发现这个时候又有一个名为AndroidManifest.xml 的文件。
之所以分别加载两个插件,主要原因是两个插件包都是android 插件,同时导入不做任何处理可能会导致AndroidManifest.xml 这个文件的替换。这样就可能导致发布出来的android 应用只能启动一个界面,不能结合使用两个插件的功能。这里说一下,一开始我也天真的以为同时导入就能使用,翻来覆去折腾了两天时间,才找到这个原因,万恶的配置文件啊......
接下来是整理两个配置文件,分别打开两个文件(我推荐使用notepad++ 这个软件,用起来挺顺手的),你会发现都用一个的标签,这个标签之中的代码就记录了android应用的启动界面,在配置文件中,每一个activity都是一个android界面,在application 标签中,把两个配置文件的所用activity 标签整理到一起,然后删除到其中一个intent-filter标签,这里删掉的是二维码扫描的intent-filter标签,即activity android:name="com.c4mprod.ezcodescanner.RootActivity"标签下的启动界面被删除。
接下来就可以结合使用增强现实和二维码扫码的功能了。
未经测试!!
感谢:感谢
分享一下xml
<?xml version="1.0" encoding="utf-8"?>
<manifest
xmlns:android="http://schemas.android.com/apk/res/android"
package="com.unity3d.player"
android:installLocation="preferExternal"
android:theme="@android:style/Theme.NoTitleBar"
android:versionCode="1"
android:versionName="1.0">
<uses-feature android:name="android.hardware.camera" />
<supports-screens
android:smallScreens="true"
android:normalScreens="true"
android:largeScreens="true"
android:xlargeScreens="true"
android:anyDensity="true"/>
<uses-permission android:name="android.permission.INTERNET" />
<uses-permission android:name="android.permission.CAMERA" />
<uses-permission android:name="android.permission.ACCESS_NETWORK_STATE"/>
<uses-permission android:name="android.permission.VIBRATE"/>
<uses-feature android:name="android.hardware.camera" />
<uses-feature android:name="android.hardware.camera.autofocus" />
<application
android:icon="@drawable/app_icon"
android:label="@string/app_name"
android:theme="@android:style/Theme.NoTitleBar.Fullscreen"
android:debuggable="false">
<activity android:name="com.unity3d.player.UnityPlayerNativeActivity"
android:label="@string/app_name">
<intent-filter>
<action android:name="android.intent.action.MAIN" />
<category android:name="android.intent.category.LAUNCHER" />
</intent-filter>
<meta-data android:name="unityplayer.UnityActivity" android:value="true" />
<meta-data android:name="unityplayer.ForwardNativeEventsToDalvik" android:value="false" />
</activity>
<activity android:name="com.unity3d.player.VideoPlayer"
android:label="@string/app_name"
android:screenOrientation="portrait"
android:configChanges="fontScale|keyboard|keyboardHidden|locale|mnc|mcc|navigation|orientation|screenLayout|screenSize|smallestScreenSize|uiMode|touchscreen">
</activity>
<activity android:name="com.c4mprod.ezcodescanner.RootActivity"
android:label="@string/app_name">
</activity>
<activity android:name="com.c4mprod.ezcodescanner.camera.CameraActivity" android:screenOrientation="sensor"/>
<!--
To support devices using the TI S3D library for stereo mode we must
add the following library.
Devices that require this are: ODG X6
-->
<uses-library android:name="com.ti.s3d" android:required="false" />
</application>
<!--package="com.c4mprod.ezcodescanner"
android:versionCode="3"
android:versionName="1.2">-->
<!--<uses-sdk android:minSdkVersion="8" />
<uses-permission android:name="android.permission.CAMERA" />
<uses-permission android:name="android.permission.VIBRATE"/>
<uses-feature android:name="android.hardware.camera" />
<uses-feature android:name="android.hardware.camera.autofocus" />-->
</manifest>
ARVR技术交流群129340649,欢迎加入,一起讨论学习!