我有Unity3D虚拟现实应用程序(与平台无关),需要从应用导航到设置,然后返回。我们正在尝试从VR应用中安装APK。在此过程中,Android操作系统必须在继续操作之前与用户确认是否可以。我们希望挂钩到此权限过程,以便能够在应用的不同阶段调用它。并且如果可能的话,在用户确认他们的选择时收听,然后在应用程序中相应地做出React。
到目前为止,我可以使用这段代码强制我的应用检查从未知来源安装的权限,然后将您发送到正确的设置。请注意,这段代码远未清理,但您可以得到大致的想法:
var unityClass = new AndroidJavaClass("com.unity3d.player.UnityPlayer");
var currentActivity = unityClass.GetStatic<AndroidJavaObject>("currentActivity");
var packageManager = currentActivity.Call<AndroidJavaObject>("getPackageManager");
bool launchIntent = packageManager.Call<bool>("canRequestPackageInstalls");
if (!launchIntent)
{
try
{
using AndroidJavaClass unityClass = new AndroidJavaClass("com.unity3d.player.UnityPlayer");
using AndroidJavaObject currentActivity = unityClass.GetStatic<AndroidJavaObject>("currentActivity");
string packageName = currentActivity.Call<string>("getPackageName");
using AndroidJavaClass uriClass = new AndroidJavaClass("android.net.Uri");
using AndroidJavaObject uriObject =
uriClass.CallStatic<AndroidJavaObject>("fromParts", "package", packageName, null);
using AndroidJavaObject intentObj = new AndroidJavaObject("android.content.Intent",
"android.settings.MANAGE_UNKNOWN_APP_SOURCES", uriObject);
currentActivity.Call("startActivity", intentObj);
}
catch (Exception ex)
{
Debug.LogException(ex);
}
}
我想做的是
1.安装我们的VR应用程序
1.在首次运行时,它将检查这些权限
1.如果未授权,则通知用户,然后将用户导航到正确的设置窗口以“启用”它。
1.在我们的虚拟现实应用中,倾听这种变化并采取相应的行动。或
1.我应该有什么意图标志来确保back to application
按钮/后退箭头显示在设置窗口中?在不同的设备上,相同的代码在底部显示一个箭头框,我可以单击它,它会带我回到应用程序,并从我离开的地方继续。我如何确保每个设备都显示?
2022年4月11日编辑:如果我能确保按钮出现,那么我可以只是检查回到应用程序再次如果设置已启用,一切都很好。
1条答案
按热度按时间u4vypkhs1#
目前,我发布的代码在两个不同的VR头戴设备上运行不同。一个会把我们送回应用程序,另一个没有后退按钮。现在我们有一个解决两个问题的方案。