Skip to content
New issue

Have a question about this project? Sign up for a free GitHub account to open an issue and contact its maintainers and the community.

By clicking “Sign up for GitHub”, you agree to our terms of service and privacy statement. We’ll occasionally send you account related emails.

Already on GitHub? Sign in to your account

Android applications silently fail without explicit internet permissions. #148

Open
chase-cobb opened this issue Apr 1, 2016 · 4 comments

Comments

@chase-cobb
Copy link

Because of the nature of the OSVR server client applications on Android require internet permissions.

If users don't explicitly enable internet permissions their applications will silently fail. This can be remedied by creating a minimal manifest.xml with the correct uses-permission tag in Assets->Plugins->Android. Unity will automatically merge the manifest files when building.

@VRguy
Copy link
Contributor

VRguy commented Apr 1, 2016

Can also be remedied by what's sometimes called a combined server which is
a server linked with the client.

On Fri, Apr 1, 2016, 4:31 PM Chase Cobb notifications@github.com wrote:

Because of the nature of the OSVR server client applications on Android
require internet permissions.

If users don't explicitly enable internet permissions their applications
will silently fail. This can be remedied by creating a minimal manifest.xml
with the correct uses-permission tag in Assets->Plugins->Android. Unity
will automatically merge the manifest files when building.


You are receiving this because you are subscribed to this thread.
Reply to this email directly or view it on GitHub
#148

@chase-cobb
Copy link
Author

That is definitely a solution, with it's own set of pros/cons. The manifest is a simple change that will 100% fix the issue with the normal server model. This also has no negative impact on a combined server approach.

One of the larger concerns with forcing the server to be bundled would be developer overhead. When new features roll into the server developers would be forced to recompile.

This server as a service approach is more consistent with our existing architectural direction.

@JeroMiya
Copy link
Contributor

JeroMiya commented Apr 2, 2016

Many application sandbox environments, particularly on mobile, force us to make some concessions, however the OSVR architecture still allows for a good deal of flexibility. Our approach for mobile devices (or any sandboxed app model) will be a hybrid one. On one hand, the server auto-start API will launch a server thread in the same process with a set of default plugins. Typically, these plugins will be based on operating system level abstractions (for example, the Android sensor APIs), and thus will be suitably universal across devices, and will be relatively stable.

On the other hand, OSVR uses a distributed architecture, and allows you to connect to devices on external servers via the external devices configuration section. Or, even to connect to a server running on the device. Where permitted by the mobile OS, the server configuration should be shared among all apps on that OS. This allows a great deal of flexibility - for example, it would allow mobile apps to take advantage of hand tracking devices connected to a PC on a local network, even when that device has no native support for the mobile OS.

@chase-cobb
Copy link
Author

Is there a JNI interface for the server, or does the client always communicate with the server via localhost/network protocol?

We can follow-up offline with architectural discussion if needed.

Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment
Labels
None yet
Projects
None yet
Development

No branches or pull requests

3 participants