Fork of the MicroG UnifiedNlp repository with a working standalone app implementation
Go to file
mar-v-in 854fdc1572 Gradle: make paths relative to allow build with common root 2015-01-03 13:21:20 +01:00
api Revamp configuration UI, handle preferences the android way 2014-12-26 16:20:38 +01:00
compat Fixing lint's and add gradle support 2015-01-02 19:59:03 +01:00
res Fixing various bugs across platforms 2014-12-26 19:01:25 +01:00
sample Backends should require ACCESS_COARSE_LOCATION permission 2014-03-11 19:51:23 +01:00
src Fixing lint's and add gradle support 2015-01-02 19:59:03 +01:00
.gitignore Add signing support to gradle (via user.gradle configuratio file) 2015-01-02 20:54:29 +01:00
Android.mk Geocoding up and running 2014-12-25 22:44:00 +01:00
AndroidManifest.xml Fixing lint's and add gradle support 2015-01-02 19:59:03 +01:00
README.md Oh my dirty README 2015-01-02 21:42:44 +01:00
build.gradle Gradle: make paths relative to allow build with common root 2015-01-03 13:21:20 +01:00
proguard.flags Add missing files 2014-03-10 14:05:56 +01:00
settings.gradle Fixing lint's and add gradle support 2015-01-02 19:59:03 +01:00

README.md

UnifiedNlp

The next generation NetworkLocationProvider, based on plugins

Installation

Release builds may be found on the release page.

Android 4.4 - 5.0 (KitKat / Lollipop)

Most modern ROMs come with support for non-Google geolocation providers. On these systems installation is easy:

  1. Make sure that no Google geolocation tool is installed (it is usually listed as Google Play Services in Apps)
  2. Download and install NetworkLocation.apk as a usual app (you may need to enable "Unknown sources" in Settings->Security)
  3. Reboot and continue at Usage

Some ROMs, especially those not based on AOSP might have problems using this method. However, if your system has root, you can try installing the hard way:

  1. Download NetworkLocation.apk
  2. Mount /system read-write (from your PC, call adb root && adb remount)
  3. Copy NetworkLocation.apk to /system/priv-app (from ypur PC, call adb push NetworkLocation.apk /system/priv-app/NetworkLocation.apk)
  4. Reboot (from you PC, call adb reboot) and continue at Usage

Android 2.3 - 4.3 (Gingerbread / Honeycomb / Ice Cream Sandwich / Jelly Bean)

Older Android versions are no longer officially supported. However I still provide a legacy build, that should be compatible with those systems. It is required to have a rooted system to install on Jelly Bean and older.

  1. Download LegacyNetworkLocation.apk
  2. Mount /system read-write (from your PC, call adb root && adb remount)
  3. Copy LegacyNetworkLocation.apk to /system/app (from ypur PC, call adb push LegacyNetworkLocation.apk /system/priv-app/NetworkLocation.apk)
  4. Reboot (from you PC, call adb reboot) and continue at Usage

Usage

UnifiedNlp alone does not provide any features, but acts as a middleware for multiple backends.Most of them can be downloaded and updated using F-Droid Here is a list of backends for geolocation and (reverse) geocoding known to me:

After installing a backend, you can use UnifiedNlp by activating network-based geolocation in Settings->Location. Since KitKat, you need to select any mode but "device only", on older Android version this setting is called "Wi-Fi & mobile network location" (ignore any misleading texts saying this is for Google's location service, you don't have Google's service installed but UnifiedNlp 😄)

Backend-development

Take a look at the API documentation in /api/README.md. You might also be interested in the sample backends in /sample/

Building

UnifiedNlp can be built using Gradle. Current builds are done using Gradle 2.2, but other versions might work as well.

AOSP Build system integration

UnifiedNlp can be build as part of Android when building an Android ROM from source. Add the repo to your (local) manifest.xml and extend the PRODUCT_PACKAGES variable with NetworkLocation for KitKat and LegacyNetworkLocation for Jelly Bean.

You can also directly invoke the compilation of UnifiedNlp by calling make UnifiedNlp or make NetworkLocation (respectively make LegacyNetworkLocation) from the build system root.

Attribution

Some components: Copyright (C) 2013 The Android Open Source Project compat-folder is extracted from different AOSP versions for cross-version compatibility

License

Copyright 2014 μg Project Team

Licensed under the Apache License, Version 2.0 (the "License");
you may not use this file except in compliance with the License.
You may obtain a copy of the License at

    http://www.apache.org/licenses/LICENSE-2.0

Unless required by applicable law or agreed to in writing, software
distributed under the License is distributed on an "AS IS" BASIS,
WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
See the License for the specific language governing permissions and
limitations under the License.