😅
JMRSDK Development
v4.33
v4.33
  • Jio Mixed Reality SDK Documentation
    • Changelog 4.33.0
      • Upgrade Guide 4.33.0
    • Changelog 4.33.13
      • Upgrade Guide 4.33.13
  • Device Information
    • Supported Smartphones
  • Controller Specifications
    • Physical Controllers
    • Virtual Controller / Virtual Keyboard for JioGlass
  • Getting Started
    • Development Platform
    • Setting Up Jio Mixed Reality Project in Unity
    • URP Support
      • Setting Up Your Project With URP
      • Reverting Back to Built-In Render Pipeline
  • JMRSDK
    • JMRSDK Content
    • JMRMixedReality Prefab
    • System Dock
    • JMRRig
      • Local Rig
      • Setting Homepage (Quit functionality)
      • Recenter Application on Resume
  • Develop
    • Editor Emulator
    • JioGlass Controller Interactions
    • Cameras
    • Tesseract Mixed Reality UI Toolkits
    • Examples
  • Interaction
    • Gaze Interaction
      • Gaze and Click
      • Gaze and Dwell
    • Interaction
      • Pointer Manager
        • Examples
    • Interfaces
      • ISelectHandler
      • ISelectClickHandler
      • IFocusable
      • ISwipeHandler
      • ITouchHandler
      • IBackHandler
      • IHomeHandler
      • IMenuHandler
      • IVoiceHandler
      • IFn1Handler
      • IFn2Handler
      • IManipulationHandler
    • Controller Input Actions
      • Touchpad - Touch
      • Touchpad - Swipe
      • Source Buttons
      • Manipulation
    • Actions
    • Device State
      • Device Connected
      • Device Disconnected
      • Battery percentage update
      • Scanning for Device
      • Battery Percentage
  • Voice
    • Voice
      • Speech Events
      • Speech Result
      • Speech Error
      • Speech Session End
      • Speech Cancel
    • Listening
  • Tracking
    • Tracking
      • Coordinate System
    • Tracking Framework
      • TrackerManager Actions
        • Get Head Position
        • Get Head Rotation
        • Get Head Transform
      • TrackerManager Methods
        • Get Head Position
        • Get Head Rotation
        • Get Head Transform
    • Recenter
  • Building and Testing
    • Building to Target Device
      • Merging AndroidManifest
      • Performance Optimization
      • App optimization
    • JioImmerse App For Jio Mixed Reality (TMR) Devices
      • Running the application on Prism (Holoboard)
    • IPD Calibration
  • Publish
    • Licensing Journey
    • Signing App for App Store
    • Publishing to JioGlass Developer Console
    • Publishing to Google Play Store
      • Play Store Upload Journey
  • Capturing and Recording
    • Capture Videos and Screenshots
      • Capturing Screenshot/Videos using scrcpy
      • Capturing Screenshot/Videos using Vysor
  • Troubleshooting
    • FAQs - Develop
    • FAQs - Building to device
      • Gradle
      • Old aaptOptions error fix
    • FAQs - Running and Publishing
    • Laser Point Not Visible
Powered by GitBook
On this page
  1. Building and Testing
  2. Building to Target Device

Merging AndroidManifest

PreviousBuilding to Target DeviceNextPerformance Optimization

Last updated 2 years ago

If a custom manifest is added to the project and is not willing to directly replace the existing AndroidManifest.xml, the following steps are to be done to merge them both.

  1. Add following <meta-data> tag in <activity> tag

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

2. Add / Replace existing JMRSDK AndroidManifest permissions with the following permissions. Your extra permissions should be added after this permission.

<uses-permission android:name="android.permission.RECORD_AUDIO" tools:node="remove" />
<uses-permission android:name="android.permission.WRITE_EXTERNAL_STORAGE" tools:node="remove"/>
<uses-permission android:name="android.permission.READ_EXTERNAL_STORAGE" tools:node="remove"/>
<uses-permission android:name="android.permission.READ_PHONE_STATE" tools:node="remove"/>
<uses-permission android:name="android.permission.READ_PRIVILEGED_PHONE_STATE" tools:node="remove"/>
<uses-permission android:name="android.permission.WAKE_LOCK"/>

3. Uncomment permission from AndroidManifest or add the following permission for using the Camera.

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

4. Ensure that the following three lines are present under the <application> tag. Ensure that you follow the steps in the section to ensure that your application is reflected within the same category as it is uploaded on the developer console.

<meta-data android:name="com.jiotesseract.mr.category" android:value="1" />
<meta-data android:name="com.jiotesseract.platform" android:value="LITE" />
<activity android:name="com.jiotesseract.mr.sdk.JmrUnityActivity" android:label="@string/app_name" android:launchMode="singleTask" android:configChanges="orientation|keyboardHidden|screenSize|screenLayout">

5. Make sure "android:excludeFromRecents" attribute is not present in the activity/application tag.

<applicaition android:excludeFromRecents="*"/>

6. The final AndroidManifest file should look like following

<?xml version="1.0" encoding="utf-8"?>
<manifest xmlns:android="http://schemas.android.com/apk/res/android" package="${applicationId}" xmlns:tools="http://schemas.android.com/tools" android:installLocation="preferExternal">
  <supports-screens android:smallScreens="true" android:normalScreens="true" android:largeScreens="true" android:xlargeScreens="true" android:anyDensity="true" />
  <application android:theme="@style/UnityThemeSelector" android:icon="@mipmap/app_icon" android:label="@string/app_name" android:requestLegacyExternalStorage="true" android:screenOrientation="landscape">
    <meta-data android:name="com.jiotesseract.mr.category" android:value="7" />
    <meta-data android:name="com.jiotesseract.platform" android:value="LITE" />
    <activity android:name="com.jiotesseract.mr.sdk.JmrUnityActivity" android:label="@string/app_name" android:launchMode="singleTask" android:configChanges="orientation|keyboardHidden|screenSize|screenLayout">
      <intent-filter>
        <action android:name="android.intent.action.MAIN" />
        <category android:name="android.intent.category.LAUNCHER" />
        <category android:name="tesseract.intent.category.MR_LAUNCHER" />
      </intent-filter>
      <meta-data android:name="unityplayer.UnityActivity" android:value="true" />
    </activity>
  </application>
  <!--<uses-permission android:name="android.permission.CAMERA" />-->
  <!--uncomment permission  to use camera example -->
  <!--<uses-permission android:name="android.permission.RECORD_AUDIO" />-->
  <!-- permission is required to use Voice example -->
  <!--HARD STOPPED PERMISSIONS-->
  <uses-permission android:name="android.permission.RECORD_AUDIO" tools:node="remove" />
  <uses-permission android:name="android.permission.WRITE_EXTERNAL_STORAGE" tools:node="remove" />
  <uses-permission android:name="android.permission.READ_EXTERNAL_STORAGE" tools:node="remove" />
  <uses-permission android:name="android.permission.READ_PHONE_STATE" tools:node="remove" />
  <uses-permission android:name="android.permission.READ_PRIVILEGED_PHONE_STATE" tools:node="remove" />
  <uses-permission android:name="android.permission.WAKE_LOCK" />
</manifest>
Adding Category Tag In AndroidManifest