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