Android Google Analytics: set Mobile Device Info - java

The latest version of Google Analytics has a Mobile category under Visitors. However, Visitors > Mobile > Devices shows only one value, (not set), for my visits.
I am using the latest SDK (1.3). How can I set the Mobile Device Info (custom var, method I am not seeing) so that it appears in the report?

I had a similar issue testing the Android SDK (v2 beta 5). It turned out to be ridiculously obvious after I spent far too much time trying to solve the issue in code and analytics.xml. This may not be the OP's problem, but this is where I ended up looking when I had the same issue, so I hope it helps. Long story short...
Emulator device info can confuse Google Analytics
I was testing a lot of these calls on an emulator. Even though my custom emulator was based roughly on a Galaxy Nexus (hw.device.manufacture: Google and hw.device.name: Galaxy Nexus according to Android Virtual Device Manager, it was coming over as Manufacturer = "unknown" and Model = "Android SDK built for x86" at runtime. As a result, Google Analytics decided that constitutes "(not set)" for just about ever device property they stored.
Once I was deployed to a physical test device, all the appropriate data was pulled in automatically by the SDK.

The information in "Visitors > Mobile > Devices" is automatically filled in by the SDK (based on the HTTP User-Agent string], and automatically, if possible, classified by Analytics.
Google seems to have problems identifying new devices when they come out (if they change their browser ID strings, etc), so you'll see "(not set)" for traffic from those devices. For example, see http://productforums.google.com/forum/#!category-topic/analytics/discuss-google-analytics-features-with-other-users/n-LDtWGhZiY (after the iOS 5 release, these devices showed up as "(not set)" Mobile Devices for several months).

Related

How can an app find out if the user has updated the OS in their device

I am trying to build an application in which I need to find out whether the user has updated their Android phone's OS or not.
For example if user's phone has android version 9 and his phone supports android version 11 but he has not updated it then I have to send a notification on his phone that please update your device.
But if his phone doesn't support android version 11 or other new versions then we have to check that till which version his device can support.
Please advise me on how I can do that.
TL;DR - It will be a lot of work. This is not something that the standard Android APIs support.
Here are a couple of approaches that may work
Approach #1
You will need to do is build and maintain a central database of all makes and models of Android phones and the latest available OS version for each one.
When your app needs to check if the OS is up to date it does the following:
Lookup the device's make and model, and its OS version. This Q&A explains how to get the current OS version:
How can I check the system version of Android?
Query the central database (running on your infrastructure) to find out what the latest OS version for the device is.
If the user's device is out of date, send the user the notification.
Downside: you will have to assemble the database of devices and OS versions, and keep it up to date. And you will need to pay for the infrastructure that hosts the database and responds to queries.
Approach #2
For each Android device manufacturer, research how their device firmware works out if there is an update available. Apparently, this functionality is not standardized. There are no standard Android APIs that will tell you if the user's device has an OS update available.
Downside: you have a lot of research and (possibly) implementation work to do to support a range of devices. It will quite possibly entail getting hold of a lot of different types of devices for testing. (You are unlikely to be able to develop and test on an emulator.

ARCore: How to make my app available on GPlay only to devices that support Depth API?

I have an app that uses Depth API.
As mentioned here:
https://developers.google.com/ar/discover/supported-devices
Depth API is not supported by all devices that support ARCore.
How can I specify in my Manifest (or elsewhere) that my app requires a device compatible with Depth API ? Indeed, I don't want to see my app to be downloaded by users who can't use it!
Thanks
Depth API-supported devices
Only devices that are depth-supported should be able to discover depth-required apps in the Google Play Store. Discovery should be limited to depth-supported devices when:
A core part of the experience relies on depth
There is no graceful fallback for the parts of the app that use depth
To limit distribution of your app in the Google Play Store to devices that support the Depth API, add the following line to your AndroidManifest.xml, in addition to the AndroidManifest.xml changes described in the Enable ARCore guide:
<uses-feature android:name="com.google.ar.core.depth" />
reference:
https://developers.google.com/ar/develop/java/depth/developer-guide
I believe there's no way of explicitly telling your app not to be downloaded based on anything other than SDK version directly through your Manifest.
What you could do, is that the Google Play Console has a section where you can manually include/exclude devices into the pool of devices that can find you app in the store. I do have to warn you that this process is VERY manual, both for exclusions and inclusions altogether.
Therefore, what you could do, is to make a list of the devices that you want to support on your own, and then reflect this list by blacklisting the rest of the devices that you don't want to support directly through your Google Play Console.

My application will not show up in the Market on 4.0 devices

I recently bought a Galaxy Nexus and flashed 4.0.4 onto it (I don't know if this affected the problem). My application used to, but no longer, is displayed in the Android Market on the device when searching for it or even when navigating to My Apps.
It does display in my launcher correctly once installed and runs perfectly, however it will not show up in the Android Market. I am very confused as to why this is (comes up on my Nexus One, Droid X, Galaxy S etc.) and my min SDK version is 7.
In my Manifest
uses-sdk android:minSdkVersion="7"
Any help would be greatly appreciated!
Turn off the copy write protection and it will show up in a few hours..It's better to implement you're own authentication system.
Does this happen only on your device or on other GNs as well? You can use the developer console to find out what devices the app won't show up on. Find the 'Supported devices' section, then click 'Show devices' and do a search for 'Samsung'. If it is filtered, it might be due to the permissions/features you are using in the manifest. Check those and and requried=false as necessary (if possible).

My android app is getting device not supported when trying to download with tablet

I have an android app on the market called D Bitly and I have a tablet user trying to download it and is getting "device not supported". I have double checked the market settings and it says that all devices are supported.
I have done a quick google search and I am not coming up with anything.
It requires 2 permissions:
android.permission.INTERNET
android.permission.ACCESS_NETWORK_STATE
and is for android 2.2 and up.
Any help would greatly be appreciated!
Edit: for those of you looking for an exact answer. The problem was being caused by copy protection. I have implemented the licensing service and removed the copy protection and all seems to be okay. Not exactly sure why copy protection doesn't play nicely with tablets or newer OS...
Your app is available for download for the XOOM and Galaxy Tab, so it's not a tablet-specific issue.
It's possible that the user in question has a modded ROM or something, perhaps causing some confusion with the Market servers. Beyond that, it may just be something peculiar with that Dell model.

Android device update for G1

I am using android G1 phone and now I have upgraded my SDK to 1.5 and I want to run my application on a physical device, but when I connect my phone to PC I'm able to install my app only when I'm selecting 1.1 SDK but not when selected 1.5 .
So is there any updates required for the device so I can proceed with 1.5 SDK? Also, if possible can you provide with a proper link? That would be great.
An update for your phone will be pushed OTA by your operator, just wait. If it is a dev phone look at HTC pages.
If you're in the US or UK you can find instructions on how to force-upgrade here. I did it on mine and it went fine.

Categories