ca0a797563 | ||
---|---|---|
.idea | ||
app | ||
docs | ||
gradle/wrapper | ||
.gitignore | ||
.travis.yml | ||
DemoStumbler.iml | ||
Makefile | ||
README.md | ||
build.gradle | ||
gradle.properties | ||
gradlew | ||
gradlew.bat | ||
settings.gradle |
README.md
DemoStumbler
Embed the Mozilla Stumbler as a library in your Android Application
The Mozilla Stumbler is an Android wifi and cell tower stumbling application which is designed to collect location data and submit it to our location service Ichnaea.
The standard Android application runs in what we call 'active' mode where we aggressively scan for Wi-fi routers, cell tower data and GPS supplied latitude and longitude.
We have a second mode though - for passive stumbling. We use a version of this code in Firefox for Android to do extremely low power stumbling.
Now you can use it too!
Full documentation can be found on the primary Mozilla Stumbler wiki
But I'm impatient. Just show me the code.
You'll need to import some classes:
import org.mozilla.mozstumbler.service.core.http.IHttpUtil;
import org.mozilla.mozstumbler.service.mainthread.PassiveServiceReceiver;
import org.mozilla.mozstumbler.svclocator.ServiceConfig;
import org.mozilla.mozstumbler.svclocator.ServiceLocator;
import org.mozilla.mozstumbler.svclocator.services.ISystemClock;
import org.mozilla.mozstumbler.svclocator.services.log.ILogger;
Next, you'll need to configure the ServiceLocator and then start the service with an Intent.
// Setup ServiceConfig and ServiceLocator
ServiceConfig svcConfig = new ServiceConfig();
svcConfig.put(IHttpUtil.class,
ServiceConfig.load("org.mozilla.mozstumbler.service.core.http.HttpUtil"));
svcConfig.put(ISystemClock.class,
ServiceConfig.load("org.mozilla.mozstumbler.svclocator.services.SystemClock"));
svcConfig.put(ILocationService.class,
ServiceConfig.load("org.mozilla.mozstumbler.service.core.http.MLS"));
svcConfig.put(ILogger.class,
ServiceConfig.load("org.mozilla.mozstumbler.svclocator.services.log.ProductionLogger"));
ServiceLocator.newRoot(svcConfig);
Intent i = PassiveServiceReceiver.createStartIntent(this, "a_moz_api_key",
"Just Another User-Agent");
startService(i);
Build and install the code
Enable Developer Options if you haven't done so already
- Open Settings> About> Software Information> More.
- Then tap “Build number” seven times to enable Developer options. ...
- Go back to Settings menu and now you'll be able to see “Developer options” there.
- Tap it and turn on USB Debugging from the menu on the next screen.
Connect your Android device over USB, build and install.
From command line on UNIX:
./gradlew installDebug
You can alternately just open Android Studio and use the IDE to build and install the application.