Skip to content

Instantly share code, notes, and snippets.

@scruffyfox
Last active September 2, 2015 10:29
Show Gist options
  • Save scruffyfox/b333dfe2d5b912b800c7 to your computer and use it in GitHub Desktop.
Save scruffyfox/b333dfe2d5b912b800c7 to your computer and use it in GitHub Desktop.
Fixing google analytics for GMS 7.5+
<manifest
xmlns:android="http://schemas.android.com/apk/res/android"
package="com.cube.arc.hzd"
android:versionName="v1.2-DEV"
android:versionCode="3878"
>
<!-- Location permissions -->
<uses-permission android:name="android.permission.ACCESS_FINE_LOCATION" />
<uses-permission android:name="android.permission.READ_CONTACTS" />
<!-- Google Maps Permissions -->
<uses-permission android:name="android.permission.ACCESS_NETWORK_STATE" />
<uses-permission android:name="android.permission.INTERNET" />
<uses-permission android:name="android.permission.WRITE_EXTERNAL_STORAGE" />
<uses-permission android:name="com.google.android.providers.gsf.permission.READ_GSERVICES" />
<uses-permission android:name="android.permission.READ_PHONE_STATE" />
<uses-permission android:name="android.permission.READ_PROFILE" />
<!-- Push notifications -->
<uses-permission android:name="android.permission.GET_ACCOUNTS" />
<uses-permission android:name="com.google.android.c2dm.permission.RECEIVE" />
<uses-permission android:name="android.permission.USE_CREDENTIALS" />
<uses-permission android:name="android.permission.AUTHENTICATE_ACCOUNTS" />
<uses-permission android:name="android.permission.MANAGE_ACCOUNTS" />
<uses-permission android:name="android.permission.VIBRATE" />
<!-- Flashlight/Camera -->
<uses-permission android:name="android.permission.CAMERA"/>
<uses-feature android:name="android.hardware.camera" android:required="true" />
<uses-feature android:name="android.hardware.camera.flash" android:required="true"/>
<uses-feature android:glEsVersion="0x00020000" android:required="true" />
<application
android:allowBackup="true"
android:label="@string/app_name"
android:name=".MainApplication"
android:icon="@drawable/ic_launcher"
>
<meta-data android:name="com.google.android.gms.version" android:value="@integer/google_play_services_version" />
<!-- Google Analytics -->
<receiver
android:name="com.google.android.gms.analytics.AnalyticsReceiver"
android:enabled="true"
>
<intent-filter>
<action android:name="com.google.android.gms.analytics.ANALYTICS_DISPATCH" />
</intent-filter>
</receiver>
<service
android:name="com.google.android.gms.analytics.AnalyticsService"
android:enabled="true"
android:exported="false"
/>
<receiver
android:name="com.google.android.gms.analytics.CampaignTrackingReceiver"
android:exported="true"
>
<intent-filter>
<action android:name="com.android.vending.INSTALL_REFERRER" />
</intent-filter>
</receiver>
<service android:name="com.google.android.gms.analytics.CampaignTrackingService" />
<meta-data
android:name="com.google.android.gms.analytics.globalConfigResource"
android:resource="@xml/ga_config"
/>
</application>
</manifest>
<?xml version="1.0" encoding="utf-8"?>
<resources>
<bool name="ga_autoActivityTracking">false</bool>
<integer name="ga_sessionTimeout">300</integer>
<integer name="ga_dispatchPeriod">30</integer>
<string name="ga_trackingId"></string>
<string name="ga_logLevel">verbose</string>
</resources>
package com.cube.arc.hzd;
import com.google.android.gms.analytics.GoogleAnalytics;
import com.google.android.gms.analytics.HitBuilders;
import com.google.android.gms.analytics.Tracker;
public class MainApplication extends Application
{
private Tracker tracker;
public Tracker getTracker()
{
if (tracker == null)
{
GoogleAnalytics analytics = GoogleAnalytics.getInstance(this);
Tracker t = analytics.newTracker(R.xml.ga_config);
t.setScreenName(null);
tracker = t;
}
return tracker;
}
}
package com.cube.arc.hzd.fragment;
import android.os.Bundle;
import com.cube.arc.hzd.MainApplication;
import com.google.android.gms.analytics.HitBuilders;
public class Test extends Fragment
{
@Override public void onActivityCreated(Bundle savedInstanceState)
{
super.onActivityCreated(savedInstanceState);
((MainApplication)getActivity().getApplication()).getTracker().setScreenName("Test screen view");
((MainApplication)getActivity().getApplication()).getTracker().send(new HitBuilders.ScreenViewBuilder().build());
}
}
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment