react-native-android-google-location
v1.0.9
Published
Location acquisition through Google Play Services.
Downloads
27
Maintainers
Readme
react-native-android-google-location
Location acquisition through Google Play Services.
Add Google Play Services to Your Project
To make the Google Play services APIs available to your app:
Open the build.gradle file inside your application module directory (app/build.gradle).
Add a new build rule under dependencies for the latest version of play-services, using one of the APIs listed below. Ensure that your top-level build.gradle contains a reference to the google() repo or to maven { url "https://maven.google.com" }
Save the changes, and click Sync Project with Gradle Files in the toolbar. Check here
Getting started
$ npm install react-native-android-google-location --save
Mostly automatic installation
$ react-native link react-native-android-google-location
Manual installation
Android
- Open up
android/app/src/main/java/[...]/MainActivity.java
- Add
import co.twinger.gglocation.RNAndroidGoogleLocationPackage;
to the imports at the top of the file - Add
new RNAndroidGoogleLocationPackage()
to the list returned by thegetPackages()
method
- Append the following lines to
android/settings.gradle
:include ':react-native-android-google-location' project(':react-native-android-google-location').projectDir = new File(rootProject.projectDir, '../node_modules/react-native-android-google-location/android')
- Insert the following lines inside the dependencies block in
android/app/build.gradle
:compile project(':react-native-android-google-location')
Add Permissions and used Google API to your Project
Add this to your AndroidManifest file;
// file: android/app/src/main/AndroidManifest.xml
<uses-permission android:name="android.permission.ACCESS_FINE_LOCATION" />
<uses-permission android:name="android.permission.ACCESS_COARSE_LOCATION" />
Make sure this goes at the bottom of the <application>
tag.
<uses-library android:name="com.google.android.maps" />
<meta-data
android:name="com.google.android.gms.version"
android:value="@integer/google_play_services_version" />
Usage
import RNAndroidGoogleLocation from 'react-native-android-google-location';
export default class RNGoogleLocationExample extends Component {
constructor(props) {
super(props);
this.state = {
lng: 0.0,
lat: 0.0,
};
if (!this.eventEmitter) {
// Register Listener Callback - has to be removed later
this.eventEmitter = DeviceEventEmitter.addListener('updateLocation', this.onLocationChange.bind(this));
// Initialize RNGLocation
RNAndroidGoogleLocation.getLocation();
}
}
onLocationChange (e: Event) {
this.setState({
lng: e.Longitude,
lat: e.Latitude
});
}
componentWillUnmount() {
// Stop listening for Events
this.eventEmitter.remove();
}
render() {
return (
<View style={styles.container}>
<Text style={styles.location}>
Lng: {this.state.lng} Lat: {this.state.lat}
</Text>
</View>
);
}
}