这两天在搞Oculus quest2 VR应用,系统是10的,需要用到重启,在Android Studio中重启app,缺点是需要开启android:sharedUserId=“android.uid.system”,,必须系统签名(目前网上流传的系统签名platform.pk8、platform.x509.pem、signapk.jar方案早在1年前就因使用的 MD5withRSA 签名算法被视为存在安全风险而且被禁用,为何现在还是到处复制粘贴?所以非手机、平板类型的安卓设备,最佳方案是找设备供应商提供签名文件)才能使用。其它的不用考虑,当然Oculus提供的临时签名app用于测试。

Unity 重启APP,无需系统签名,用场景切换,来代替重启

/** Unity 重启APP,确切的说应该是场景切换*/

using UnityEngine.SceneManagement; //加入头文件 
 
SceneManager.LoadScene(0); //0是场景编号。

Unity 退出APP

当然还有退出app了,直接调用Quit();,或无需在unity中做退出,用Application.Quit(); //app本体退出即可。

    public void Quit()
    {
     #if UNITY_EDITOR
       EditorApplication.isPlaying = false;  //Unity调试器运行退出
     #else
       Application.Quit(); //app本体退出
     #endif
    }
    

在Android Studio中重启app

//需要在AndroidManifest.xml中加入
android:sharedUserId="android.uid.system"

    /** Android Studio重启APP */
    public void restartApp() {
        Intent intent = new Intent(MainActivity.this, MainActivity.class);
        intent.addFlags(Intent.FLAG_ACTIVITY_NEW_TASK);
        startActivity(intent);
        android.os.Process.killProcess(android.os.Process.myPid());  //结束进程之前可以把你程序的注销或者退出代码放在这段代码之前
    }

系统签名参考官方文档:https://developer.android.com/studio/publish/app-signing

Oculus临时签名方法,仅限当前设备有效。参考官方文档:https://developer.oculus.com/manage/tools/osig-generator/

Oculus签名注意事项,参考官方文档:https://developer.oculus.com/documentation/native/android/mobile-application-signing/

使用Android Studio构建的app除了添加android.hardware.vr.headtracking之外还需要在AndroidManifest中添加以下信息,否则Oculus上架审核不通过。
使用Unity构建的app无视,按照图片设置,Unity会自己构建AndroidManifest信息。
Oculus

<application中添加
 android:supportsRtl="false"
<activity中添加
 android:screenOrientation="landscape"
 android:launchMode="singleTask"
 android:excludeFromRecents="true"/>
</activity>
 <meta-data android:name="com.oculus.vr.focusaware" android:value="true" />
</application>
 <uses-feature android:glEsVersion="0x00030000" />
 <uses-feature android:name="android.hardware.vr.headtracking" android:version="1" android:required="true" /> <!-- 需要使用sdk26或是更高版本 -->
Logo

为开发者提供学习成长、分享交流、生态实践、资源工具等服务,帮助开发者快速成长。

更多推荐