Android使用NDK转gps?

时间:2013-09-22 12:12:34

标签: android android-ndk gps

我想问一些事情。我现在意识到通过正常的SDK应用程序无法打开GPS。我的问题是我需要在没有用户确认的情况下这样做(我的应用程序的基本原则是静默工作)。我需要它,因为我的应用程序旨在被公司用来跟踪他们的设备(平板电脑)。它需要打开GPS才能获得位置,然后将其关闭。这意味着,如果我们提示用户打开GPS,他可能不会这样做,而应用程序(实际上是服务)将无法正常工作。

我的下一步是寻找替代解决方案,我的意思是,如果我们使用设置启用GPS,它最终会被核心应用程序/服务打开。我的假设是它使用本机代码访问GPS设备并打开它(如果我错了,请纠正我并指出正确的答案)。

因此我的问题是 - 如果可能的话,我怎么能在NDK中做到这一点,以后如何将它与我的应用程序集成。如果NDK无法处理它,怎么办?必须有办法,因为它最终会在设置中完成。

我还想问一下有关互联网连接的相同问题(或者使用网络提供商来获取位置)。

提前感谢您的贡献!

2 个答案:

答案 0 :(得分:0)

您可能会找到一种使用NDK / JNI呼叫处理GPS的方法,但是如果没有通知Android设备上的用户,就没有GPS这样的东西。他可以关闭GPS或拒绝打开它。在这种情况下,该设备本身(硬件)会关闭GPS传感器。

可能的方法是使用其他方法来定位设备:

  • Wifi为您提供的位置不如GPS准确,但更好的是
  • 运营商根据到达其天线的信号强度跟踪设备的位置。但我还没有看到任何能够处理的Android接口(如果有人知道如何获取该信息,可能会在这里提出问题)
  • 方式,我处理你的问题是在组织方面(因为这是公司内部的东西):你基本上对用户说:“打开GPS,你,用户,访问你的电子邮件”(好吧) , 举个例子) 给一些东西,你会收到回报: - )

答案 1 :(得分:0)

“设置”不是一个应用程序。

因此,如果您已经创建了一个应用程序,您应该以某种方式理解Android应用程序的基础知识,但如果您并不真正理解它们,那么我想说应用程序通常在“沙箱”中运行,这些应用程序可能是如果认为有必要,系统会销毁/终止。也没有“静音模式”这样的东西。用户必须接受/拒绝权限,如果您的设备上安装了Android操作系统,则用户必须能够控制其设备。 当然有办法规避这些方法,这些方法可能包括:

  1. 让所有设备在Google Play上都有一个中央帐户并激活该服务,以便在设备丢失时删除/销毁设备(您可以在设置中找到它,因为您在管理员帐户下提到它)并保持正确就像他们一样,因为那就是你在一天结束时所需要的一切。
  2. (需要启用1)你应该让你所有的公司设备(如果你想成为那种狱卒但是走这条道路会让你的员工只是把你当作一个不那么好的雇主)去运行你的软件和需要访问您的网络的每一件事都将在专有的自定义加密频道上运行(无公共加密),并且通过使用管理员帐户,您可以控制用户可以在其设备上安装的内容,您可以限制唯一的应用是上面提到的所述应用程序。现在,将您的员工需要的所有内容作为应用程序的子应用程序;)并且最重要的是,如果有GPS信号,这些应用程序只能运行(因此,如果您的员工进入管道......他的设备将停止工作)从中加入/减去你感觉到的任何东西。
  3. 做一个好雇主,让他们用你给他们的设备做任何他们喜欢的事。如果你给予信任,你会为他们正在做的工作获得快乐,如果你监禁人们,你会收到负面情绪和糟糕的表现(最终它甚至可以朝着人们留给更好的雇主的方向前进)。
  4. 如果我在你的鞋子里,我肯定会选择第三种选择。从技术挑战来看,#2是我认为唯一的方法,也是一个非常有趣的架构,你可以在很长一段时间内实现...所以你还需要确保投入的努力值得花2小时你的雇主将在家与他的孩子一起玩愤怒的小鸟;)然而,如果你在挑战中比任何真实的应用程序更多,这是你从各个角度学习Android操作系统的绝佳机会。 NDK可能会帮助您,但不是您想要的方式......更多的是自定义加密等等。

    编辑:对不起我的扭曲逻辑和表达方式,但现在已经很晚了,并且已经很漫长了。