Android 如何在本机代码中获取基于网络的位置?
How to get Network based location in Native code in Android?
为了获取基于网络的位置,我们在 java
中使用以下代码
// Check network provider is available
if( locationManager.isProviderEnabled(LocationManager.NETWORK_PROVIDER) )
{
location = locationManager.getLastKnownLocation(LocationManager.NETWORK_PROVIDER);
}
1) 同样的事情我如何从本机 C 代码做?
2) android是否有本地服务可用?
你应该使用 NDK。您可以使用 Android 提供的服务开发 java 中的主要功能,然后使用结果回调您的 C 代码。
不,NDK 仅支持有限数量的库。它被设计用于真正需要处理器的东西,因此实际上会受益于用本地语言编写。从文档中,仅支持的区域:
libc (C library) headers
libm (math library) headers
JNI interface headers
libz (Zlib compression) headers
liblog (Android logging) header
OpenGL ES 1.1 and OpenGL ES 2.0 (3D graphics libraries) headers
libjnigraphics (Pixel buffer access) header (for Android 2.2 and above)
Minimal set of headers for C++ support
为了获取基于网络的位置,我们在 java
中使用以下代码// Check network provider is available
if( locationManager.isProviderEnabled(LocationManager.NETWORK_PROVIDER) )
{
location = locationManager.getLastKnownLocation(LocationManager.NETWORK_PROVIDER);
}
1) 同样的事情我如何从本机 C 代码做?
2) android是否有本地服务可用?
你应该使用 NDK。您可以使用 Android 提供的服务开发 java 中的主要功能,然后使用结果回调您的 C 代码。
不,NDK 仅支持有限数量的库。它被设计用于真正需要处理器的东西,因此实际上会受益于用本地语言编写。从文档中,仅支持的区域:
libc (C library) headers
libm (math library) headers
JNI interface headers
libz (Zlib compression) headers
liblog (Android logging) header
OpenGL ES 1.1 and OpenGL ES 2.0 (3D graphics libraries) headers
libjnigraphics (Pixel buffer access) header (for Android 2.2 and above)
Minimal set of headers for C++ support