[Oculus Go] "This app uses the speech API, which is not supported on this device"
Hi, I'm trying to upload the alpha version of my application on the oculus build dashboard, but I keep getting this message from the test status result: "This app uses the speech API, which is not supported on this device.". I'm using Unity 2018.1.0f2 with all the oculus integration assets updated. I did some research and tried re-generating the AndroidManifest.xml with the tools->oculus feature, then added this line manually <uses-feature android:name="android.hardware.microphone" android:required="false" /> inside the manifest template in Assets\Plugins\Android. After the build I inspected the apk and noticed that the merged manifest file has this permission listed: <uses-permission android:name="android.permission.RECORD_AUDIO" /> which I guess could be the issue ... but I don't really know how to get rid of it, Unity seems to add it arbitrarily. If I push the app directly from Unity to the Oculus Go it works without any issue so I'm a bit confused, I'm pretty sure I haven't written any line of code that could require such API in order to run (or that RECORD_AUDIO permission to be added in the manifest file), yet I'm also pretty sure that I'm missing something obvious :) I hope somebody will be able to help me, thanks in advance.4.6KViews0likes13CommentsChange AndroidManifest.xml for AppLab submission.
I'm trying to get my app to be submitted into the AppLab, but I'm running into issues where no matter what I try, I always get those permissions active in my build: android.permission.READ_EXTERNAL_STORAGE android.permission.READ_MEDIA_AUDIO android.permission.READ_MEDIA_VIDEO android.permission.READ_MEDIA_IMAGES android.permission.ACCESS_MEDIA_LOCATION android.permission.READ_MEDIA_IMAGE android.permission.READ_MEDIA_VISUAL_USER_SELECTED My app currently does not use any of those permissions, but I am currently using Oculus Interaction SDK (The old integration), so I have two options, to delete all the code that is tied to those permissions, or use another straighter (to the point) solution like modifying the manifest directly, I tried the following code using custom AndroidManifest.xml file checked on Player Settings: <?xml version="1.0" encoding="utf-8" standalone="no"?> <manifest xmlns:android="http://schemas.android.com/apk/res/android" package="com.CompanyName.MyApp" xmlns:tools="http://schemas.android.com/tools"> <uses-permission android:name="android.permission.RECORD_AUDIO" tools:node="remove" /> <uses-permission android:name="android.permission.MODIFY_AUDIO_SETTINGS" tools:node="remove" /> <uses-permission android:name="android.permission.READ_MEDIA_AUDIO" tools:node="remove" /> <uses-permission android:name="android.permission.READ_MEDIA_VIDEO" tools:node="remove" /> <uses-permission android:name="android.permission.READ_MEDIA_IMAGES" tools:node="remove" /> <uses-permission android:name="android.permission.ACCESS_MEDIA_LOCATION" tools:node="remove" /> <uses-permission android:name="android.permission.READ_MEDIA_IMAGE" tools:node="remove" /> <application android:label="@string/app_name" android:icon="@mipmap/app_icon" android:allowBackup="false"> <activity android:theme="@android:style/Theme.Black.NoTitleBar.Fullscreen" android:configChanges="locale|fontScale|keyboard|keyboardHidden|mcc|mnc|navigation|orientation|screenLayout|screenSize|smallestScreenSize|touchscreen|uiMode" android:launchMode="singleTask" android:name="com.unity3d.player.UnityPlayerActivity" android:excludeFromRecents="true" android:exported="true"> <intent-filter> <action android:name="android.intent.action.MAIN" /> <category android:name="android.intent.category.LAUNCHER" /> </intent-filter> </activity> <meta-data android:name="unityplayer.SkipPermissionsDialog" android:value="false" /> <meta-data android:name="com.samsung.android.vr.application.mode" android:value="vr_only" /> <meta-data android:name="com.oculus.vr.focusaware" android:value="true"/> </application> <uses-feature android:name="android.hardware.vr.headtracking" android:version="1" android:required="true" /> </manifest> But it simply did not work, not matter what I tried. I also tried building directly on Android Studio, but it did not work either. I don't know why the custom manifest is not working, well, actually it works but specifically the record audio part. <uses-permission android:name="android.permission.RECORD_AUDIO" tools:node="remove" /> The other permissions simply stay there. I hope that maybe some good developer can help me with this issue. Unity version: 2021.3.30f1, Using this packages: Thank you very much for your patience 😊2.3KViews1like3CommentsUnable to give permission for All files access
I am currently working on an application that uses a specific document on the users device to transfer information and records between itself and different simmilar applications made by my team (imagine Game A storing its highscores in a shared document so Game B can read those same highscores and incorporate them in Game B). This methodologie allready works on the Hololens 2 which i have also developed for so i assumed it would work on the Quest 3 aswell. After doing some research i discovered that my best bet would be to try to get All File Access letting me access a shared directory between my different games. I found some code online that should help me ask for All Files Permission Access, as that isnt natively supported by unity itself. using var buildVersion = new AndroidJavaClass("android.os.Build$VERSION"); using var buildCodes = new AndroidJavaClass("android.os.Build$VERSION_CODES"); //Check SDK version > 29 if (buildVersion.GetStatic<int>("SDK_INT") > buildCodes.GetStatic<int>("Q")) { using var environment = new AndroidJavaClass("android.os.Environment"); //сhecking if permission already exists if (!environment.CallStatic<bool>("isExternalStorageManager")) { using var settings = new AndroidJavaClass("android.provider.Settings"); using var uri = new AndroidJavaClass("android.net.Uri"); using var unityPlayer = new AndroidJavaClass("com.unity3d.player.UnityPlayer"); using var currentActivity = unityPlayer.GetStatic<AndroidJavaObject>("currentActivity"); using var parsedUri = uri.CallStatic<AndroidJavaObject>("parse", $"package:{Application.identifier}"); using var intent = new AndroidJavaObject("android.content.Intent", settings.GetStatic<string>("ACTION_MANAGE_APP_ALL_FILES_ACCESS_PERMISSION"), parsedUri); currentActivity.Call("startActivity", intent); return true; } } return false; However after trying to ask for permission i am presented with the following screen. I am not able to manipulate the grayed out checkbox with my fingers or controllers. Is there something i did wrong?2.3KViews0likes3CommentsUnity OVRPlugin and READ_EXTERNAL_STORAGE permission
My game utilises OVRPlugin and by default it now asks for READ_EXTERNAL_STORAGE permission on the first launch. My game does not need any access to external storage, plus it actually doesn't make any difference if I click either Allow or Deny. However, it is a significant barrier for players, because they think the game might gain access to their private content, such as photos and contacts. I kindly ask Oculus team to look at this issue and possibly allow developers to optionally disable this permission request somehow.1.1KViews0likes1CommentGame doesn't render after returning from android permissions
We have two permission requests at the start of the game: * Spatial permissions * Bluetooth permissions Sometimes after returning to the game after accepting these permissions nothing is rendered, but the game is still actually working. Music & sounds play, hand tracking works and you can press buttons, etc (though you can't see them). When you bring up the system menu/game title screen through the meta system hand pinch gesture and then "resume" the game, everything starts rendering again. Another issue that can happen (which seems related) is that after accepting the permission it doesn't return to the game, it brings up screen you get when you bring up the system menu. You then need to tap resume to continue the game. In our case you immediately get asked for the second permission and it'll return to the system menu again. This happens slightly more frequently than the issue above. We don't get both issues at the same time. The issue replicatable 50% of the time. Any advice would be highly appreciated. Cheers, Steven, Fantail Games.625Views0likes2Commentshow to handle differences gearvr vs oculus go in the same build
Hallo, one question about how to handle differences on gearvr and go development for one build/version my application. I have developed an application for samsung gearvr with camera support. Now i like to port it to oculus go, but want only one version for both platforms on the oculus store. When uploading my test build, the oculus store scan denies it. Oculus go has no camera, but my androidmanifest demands the camera permissions. Ok i could remove the camera permissions, though the gearvr will not use the camera. Do i have to setup two applications on the store or is there a way to get one gear/go build on the store and handle the differences via code? if (device== oculus go) DoNoCamAction(); thanks492Views0likes0Comments