29 Aug 2015

feedAndroid Community

Travel into the ghost realm in Whispering Willows, now on Android 

Games that make you feel like you're a character in a movie are always a good thing right? What about those that make you feel like you're both watching an … Continue reading

29 Aug 2015 4:00pm GMT

feedAndroid News, Rumours, and Updates

Amazon Echo gets new multi-account support, BART schedule access

Amazon has rolled out a couple updates to their Amazon Echo home assistant appliance to help improve its usefulness. The first new feature that will impact the most users is the ability to play audiobooks and music from multiple Amazon accounts. Users can fire up the Amazon Alexa companion app on their mobile device to […]


Come comment on this article: Amazon Echo gets new multi-account support, BART schedule access

Visit TalkAndroid for Android news, Android guides, and much more!

29 Aug 2015 2:08pm GMT

feedAndroid Community

Bullet Boy’s fast-paced action gameplay will make you playing for hours

Bullet Boy is one adventurous character that will do nothing but to float around as a bullet of cannons. Yep, that's why he's called Bullet Boy because our little hero … Continue reading

29 Aug 2015 2:00pm GMT

feedAndroid News, Rumours, and Updates

Verizon to start offering special deals on #WhyNotWednesday

You may think it would be hard to re-orient Wednesday from being known as anything other than Hump Day, which you probably say in your head using the voice of a certain camel, but Verizon thinks they can do that. They have announced they are launching a new campaign called #WhyNotWednesday in which they will […]


Come comment on this article: Verizon to start offering special deals on #WhyNotWednesday

Visit TalkAndroid for Android news, Android guides, and much more!

29 Aug 2015 12:47pm GMT

DoubleClick ads get a Material overhaul

It seems like everything is going Material these days and the ads that appear on your mobile device are no exception. DoubleClick, the company behind many of the ads that show up in the apps you use has announced their AdMob network and DoubleClick Ad Exchange spots are being overhauled with a Material design inspired […]


Come comment on this article: DoubleClick ads get a Material overhaul

Visit TalkAndroid for Android news, Android guides, and much more!

29 Aug 2015 12:34pm GMT

feedAndroid Community

iBackPack does everything for you (at least digitally)

Lately, we've seen 50-in-1 (okay, maybe that's an exaggeration) things like jackets, pants, necklaces, etc, as our expectations of what wearable devices should be have been constantly changing and upgrading. … Continue reading

29 Aug 2015 11:10am GMT

feedAndroid News, Rumours, and Updates

Hands on with People Edge on the Samsung Galaxy S6 Edge+

When Samsung unveiled their new Galaxy S6 Edge+, they also brought with it one new feature that it's smaller sibling doesn't have. That new feature is App Edge, which is an expansion on People Edge. Like the old People Edge feature, you can swipe from the top right or left of the edge screen (depending on […]


Come comment on this article: Hands on with People Edge on the Samsung Galaxy S6 Edge+

Visit TalkAndroid for Android news, Android guides, and much more!

29 Aug 2015 2:48am GMT

Google updates mobile app search design

Google is updating how searching for apps on mobile will look. If you search for virtually any app and add the word "app", at the end, you will get to see this new grid layout above the normal layout. The color of the box is determined by the app's icon. If you click "More apps", […]


Come comment on this article: Google updates mobile app search design

Visit TalkAndroid for Android news, Android guides, and much more!

29 Aug 2015 2:04am GMT

feedAndroid Community

Scribbled Arena is multiplayer tank PvP, with good old drawn maps

How many ways can you execute a tank head-to-head combat game? Not a whole lot, we would think. There are a lot of multiplayer tank battle games in the Google … Continue reading

29 Aug 2015 2:00am GMT

Live stream any app from your phone on Mirrativ app (beta)

The race for the best live-streaming app in the market is definitely on. From Meerkat and Twiiter-owned Periscope with their social media live broadcasts, to Twitch's gaming livestream community, to … Continue reading

29 Aug 2015 1:20am GMT

New ‘Apps’ results layout, colored grid hit Google mobile search

Google's search engine is number one. No questions about that but you know, even if the Internet giant's algorithm is generally reliable, we can't expect the mobile app version to … Continue reading

29 Aug 2015 12:40am GMT

Bento Launcher renamed as Scout, still in beta mode

There are numerous app launchers already on Android but we're still on the lookout for the ultimate one that beats everything else. We know that won't happen soon because every … Continue reading

29 Aug 2015 12:00am GMT

28 Aug 2015

feedAndroid Community

IK Multimedia wants you to play the piano on your Android device

If you're a digital musician, you have probably heard of IK Multimedia's solutions for guitarists and their Android (or iOS) devices. They made the iRig, which interfaces your guitar with … Continue reading

28 Aug 2015 11:20pm GMT

Google devs add Runtime Permissions in time for Android 6.0 Marshmallow

Google is making some changes to setting permissions on the latest Android 6.0 Marshmallow. Actually, it's not just some as the Internet giant said the development is one the largest … Continue reading

28 Aug 2015 10:40pm GMT

feedAndroid News, Rumours, and Updates

LG’s new Nexus phone might arrive next month

Nexus devices typically launch in November, a time that coincides with the release of a new version of Android. This year, however, the wait may not be so long. A report from Korean media outlet MK Post claims that a Nexus device from LG will launch on September 29. What else does this mean? Android […]


Come comment on this article: LG's new Nexus phone might arrive next month

Visit TalkAndroid for Android news, Android guides, and much more!

28 Aug 2015 10:36pm GMT

feedAndroid Community

Vine incorporates more music elements for posts in latest update

There have been several Vine superstars that have gone on to make music records. Some musicians have used the video sharing app to get more followers and sell records as … Continue reading

28 Aug 2015 10:00pm GMT

feedAndroid News, Rumours, and Updates

Motorola silently stops selling the Moto 360, possibly hinting a successor is coming soon

Looking to purchase the Moto 360 from Motorola's site? You'll have to look elsewhere since Motorola has silently halted sales of its smartwatch. The product page for the Moto 360 on the company's site is no longer redirects to Moto Maker for online ordering. Instead, clicking "Build yours" button leads to the Motorola Support page. […]


Come comment on this article: Motorola silently stops selling the Moto 360, possibly hinting a successor is coming soon

Visit TalkAndroid for Android news, Android guides, and much more!

28 Aug 2015 9:54pm GMT

feedAndroid Community

Withings now integrated with Sony Lifelog lifestyle tracking app

No one fitness wearable or app can live alone. More often than not, these various apps, programs, and even devices will have to work together in order to give the … Continue reading

28 Aug 2015 9:20pm GMT

Lenovo Vibe P1 caught in the wild ahead of IFA 2015

The Lenovo Vibe P1 is one of those few smartphones that we really want to check out and review because of its huge 5000mAh battery. How long will the phone … Continue reading

28 Aug 2015 8:40pm GMT

Waze now cautions drivers approaching dangerous intersections 

A lot of drivers nowadays rely on navigation apps to help them reach destinations faster or drive around unfamiliar areas. Waze is one of the more popular ones available for … Continue reading

28 Aug 2015 8:00pm GMT

feedAndroid News, Rumours, and Updates

Amid widespread diversity complaints in the tech sector, Twitter claims it will do better in 2016

A huge topic in the tech world the past few years is the staggeringly low percentages of women and minorities employed in these sectors. A few companies have committed themselves to addressing this issue and, now, Twitter joins them. In a blog post today, Twitter Vice President of Diversity and Inclusion Janet Van Huysse, wrote […]


Come comment on this article: Amid widespread diversity complaints in the tech sector, Twitter claims it will do better in 2016

Visit TalkAndroid for Android news, Android guides, and much more!

28 Aug 2015 7:25pm GMT

feedAndroid Community

Trekkies rejoice! Star Trek themes now available on Swype keyboard

Before all your Harry Potter or Lord of the Rings or Game of Thrones fandoms, one of the most die-hard group of geek fans out there are the Trekkies or … Continue reading

28 Aug 2015 7:20pm GMT

feedAndroid News, Rumours, and Updates

Google AdWords to begin disabling Flash advertisements in Chrome

On September 1st, you will no longer see advertisements utilizing Flash. This doesn't mean that you won't see video-like advertisements anymore, just they will all be HTML5. Google's AdWords division states that this change will speed up browser performance and bring all advertisers in line with the new HTML5 standard. There is already a setting in Chrome […]


Come comment on this article: Google AdWords to begin disabling Flash advertisements in Chrome

Visit TalkAndroid for Android news, Android guides, and much more!

28 Aug 2015 7:10pm GMT

feedAndroid Community

Rockchip develops Light Work OS, mimics Windows OS

Manufacturers of tablet devices are trying to beat the drop and looking for features that can give them an edge in a cutthroat tablet market. One of Rockchip's solutions could … Continue reading

28 Aug 2015 6:00pm GMT

feedAndroid News, Rumours, and Updates

[TA Deals] Build a foundation for JavaScript with these free lessons

Programming language JavaScript is used across the web to give webpages their own behavior. So it can actually be pretty useful to have even the slightest bit of knowledge in JavaScript. Through Talk Android Deals, you can get the Zenva 'Programming for Entrepreneurs' JavaScript Course and learn how to make interactive web pages and apps. […]


Come comment on this article: [TA Deals] Build a foundation for JavaScript with these free lessons

Visit TalkAndroid for Android news, Android guides, and much more!

28 Aug 2015 6:00pm GMT

feedAndroid Community

Some more press renders of Xperia Z5 leaked, 23MP camera confirmed

The Sony Xperia Z5 is coming. Oh we're sure of that and we know that Sony will be making a grand reveal at the IFA 2015 next week in Berlin. … Continue reading

28 Aug 2015 5:20pm GMT

27 Aug 2015

feedAndroid Developers Blog

Announcing the Android Auto Desktop Head Unit

Posted by Josh Gordon, Developer Advocate

Today we're releasing the Desktop Head Unit (DHU), a new testing tool for Android Auto developers. The DHU enables your workstation to act as an Android Auto head unit that emulates the in-car experience for testing purposes. Once you've installed the DHU, you can test your Android Auto apps by connecting your phone and workstation via USB. Your phone will behave as if it's connected to a car. Your app is displayed on the workstation, the same as it's displayed on a car.

The DHU runs on your workstation. Your phone runs the Android Auto companion app.


Now you can test pre-released versions of your app in a production-like environment, without having to work from your car. With the release of the DHU, the previous simulators are deprecated, but will be supported for a short period prior to being officially removed.

Getting started

You'll need an Android phone running Lollipop or higher, with the Android Auto companion app installed. Compile your Auto app and install it on your phone.

Install the DHU

Install the DHU on your workstation by opening the SDK Manager and downloading it from Extras > Android Auto Desktop Head Unit emulator. The DHU will be installed in the <sdk>/extras/google/auto/ directory.

Running the DHU

Be sure your phone and workstation are connected via USB.

  1. Enable Android Auto developer mode by starting the Android Auto companion app and tapping on the header image 10 times. This is a one-time step.
  2. Start the head unit server in the companion app by clicking on the context menu, and selecting "Start head unit server". This option only appears after developer mode is enabled. A notification appears to show the server is running.
    Start the head unit server in the Android Auto companion app before starting the DHU on your workstation. You'll see a notification when the head unit server is running.

  3. On your workstation, set up port forwarding using ADB to allow the DHU to connect to the head unit server running on your phone. Open a terminal and type adb forward tcp:5277 tcp:5277. Don't forget this step!
  4. Start the DHU.
    cd <sdk>/extras/google/auto/
    On Linux or OSX: ./desktop-head-unit
    On Windows, desktop-head-unit.exe

At this point the DHU will launch on your workstation, and your phone will enter Android Auto mode. Check out the developer guide for more info. We hope you enjoy using the DHU!

Join the discussion on

+Android Developers

27 Aug 2015 5:36pm GMT

Building better apps with Runtime Permissions

Posted by Ian Lake, Developer Advocate

Android devices do a lot, whether it is taking pictures, getting directions or making phone calls. With all of this functionality comes a large amount of very sensitive user data including contacts, calendar appointments, current location, and more. This sensitive information is protected by permissions, which each app must have before being able to access the data. Android 6.0 Marshmallow introduces one of the largest changes to the permissions model with the addition of runtime permissions, a new permission model that replaces the existing install time permissions model when you target API 23 and the app is running on an Android 6.0+ device.

Runtime permissions give your app the ability to control when and with what context you'll ask for permissions. This means that users installing your app from Google Play will not be required to accept a list of permissions before installing your app, making it easy for users to get directly into your app. It also means that if your app adds new permissions, app updates will not be blocked until the user accepts the new permissions. Instead, your app can ask for the newly added runtime permissions as needed.

Finding the right time to ask for runtime permissions has an important impact on your app's user experience. We've gathered a number of design patterns in our new Permission design guidelines including best practices around when to request permissions, how to explain why permissions are needed, and how to handle permissions being denied.

Ask up front for permissions that are obvious

In many cases, you can avoid permissions altogether by using the existing intents system to utilize other existing specialized apps rather than building a full experience within your app. An example of this is using ACTION_IMAGE_CAPTURE to start an existing camera app the user is familiar with rather than building your own camera experience. Learn more about permissions versus intents.

However, if you do need a runtime permission, there's a number of tools to help you. Checking for whether your app has a permission is possible with ContextCompat.checkSelfPermission() (available as part of revision 23 of the support-v4 library for backward compatibility) and requesting permissions can be done with requestPermissions(), bringing up the system controlled permissions dialog to allow the user to grant you the requested permission(s) if you don't already have them. Keep in mind that users can revoke permissions at any time through the system settings so you should always check permissions every time.

A special note should be made around shouldShowRequestPermissionRationale(). This method returns true if the user has denied your permission request at least once yet have not selected the 'Don't ask again' option (which appears the second or later time the permission dialog appears). This gives you an opportunity to provide additional education around the feature and why you need the given permission. Learn more about explaining why the app needs permissions.

Read through the design guidelines and our developer guide for all of the details in getting your app ready for Android 6.0 and runtime permissions. Making it easy to install your app and providing context around accessing user's sensitive data are key changes you can make to build better apps.

Join the discussion on

+Android Developers

27 Aug 2015 4:51pm GMT

24 Aug 2015

feedAndroid Developers Blog

Get the Do’s and Don’ts for Notifications from Game Developer Seriously

Posted by Lily Sheringham, Developer Marketing at Google Play

Editor's note: We've been talking to developers to find out how they've been achieving success on Google Play. We recently spoke to Reko Ukko at Finnish mobile game developer, Seriously, to find out how to successfully use Notifications.

Notifications on Android let you send timely, relevant, and actionable information to your users' devices. When used correctly, notifications can increase the value of your app or game and drive ongoing engagement.

Seriously is a Finnish mobile game developer focused on creating entertaining games with quality user experiences. They use push notifications to drive engagement with their players, such as helping players progress to the next level when they've left the app after getting stuck.

Reko Ukko, VP of Game Design at Seriously, shared his tips with us on how to use notifications to increase the value of your game and drive ongoing engagement.

Do's and don'ts for successful game notifications

Do's

Don'ts

Do let the user get familiar with your service and its benefits before asking for permission to send notifications.

Don't treat your users as if they're all the same - identify and group them so you can push notifications that are relevant to their actions within your app.

Do include actionable context. If it looks like a player is stuck on a level, send them a tip to encourage action.

Don't spam push notifications or interrupt game play. Get an understanding of the right frequency for your audience to fit the game.

Do consider re-activation. If the player thoroughly completes a game loop and could be interested in playing again, think about using a notification. Look at timing this shortly after the player exits the game.

Don't just target players at all hours of the day. Choose moments when players typically play games - early morning commutes, lunch breaks, the end of the work day, and in the evening before sleeping. Take time zones into account.

Do deep link from the notification to where the user expects to go to based on the message. For example. if the notification is about "do action X in the game now to win", link to where that action can take place.

Don't forget to expire the notifications if they're time-limited or associated with an event. You can also recycle the same notification ID to avoid stacking notifications for the user.

Do try to make an emotional connection with the player by reflecting the style, characters, and atmosphere of your game in the notification. If the player is emotionally connected to your game, they'll appreciate your notifications and be more likely to engage.

Don't leave notifications up to guess work. Experiment with A/B testing and iterate to compare how different notifications affect engagement and user behavior in your app. Go beyond measuring app opening metrics - identify and respond to user behavior.

Experiment with notifications yourself to understand what's best for your players and your game. You can power your own notifications with Google Cloud Messaging, which is free, cross platform, reliable, and thoughtful about battery usage. Find out more about developing Notifications on Android.

Join the discussion on

+Android Developers

24 Aug 2015 4:41pm GMT

21 Aug 2015

feedAndroid Developers Blog

Hungry for some Big Android BBQ?

Posted by Colt McAnlis, Head Performance Wrangler

The Big Android BBQ (BABBQ) is almost here and Google Developers will be there serving up a healthy portion of best practices for Android development and performance! BABBQ will be held at the Hurst Convention Center in Dallas/Ft.Worth, Texas on October 22-23, 2015.

We also have some great news! If you sign up for the event through August 25th, you will get 25% off when you use the promotional code "ANDROIDDEV25". You can also click here to use the discount.

Now, sit back, and enjoy this video of some Android cowfolk preparing for this year's BBQ!

The Big Android BBQ is an Android combo meal with a healthy serving of everything ranging from the basics, to advanced technical dives, and best practices for developers smothered in a sweet sauce of a close knit community.

This year, we are packing in an unhealthy amount of Android Performance Patterns, followed up with the latest and greatest techniques and APIs from the Android 6.0 Marshmallow release. It's all rounded out with code labs to let you get hands-on learning. To super-size your meal, Android Developer instructors from Udacity will be on-site to guide users through the Android Nanodegree. (Kinda like a personal-waiter at an all-you-can-learn buffet).

Also, come watch Colt McAnlis defend his BABBQ "Speechless" Crown against Silicon Valley reigning champ Chet Haase. It'll be a fist fight of humor in the heart of Texas!

You can get your tickets here, and we look forward to seeing you in October!

Join the discussion on

+Android Developers

21 Aug 2015 4:20pm GMT

20 Aug 2015

feedAndroid Developers Blog

Interactive watch faces with the latest Android Wear update

Posted by Wayne Piekarski, Developer Advocate

The Android Wear team is rolling out a new update that includes support for interactive watch faces. Now, you can detect taps on the watch face to provide information quickly, without having to open an app. This gives you new opportunities to make your watch face more engaging and interesting. For example, in this animation for the Pujie Black watch face, you can see that just touching the calendar indicator quickly changes the watch face to show the agenda for the day, making the watch face more helpful and engaging.

Interactive watch face API

The first step in building an interactive watch face is to update your build.gradle to use version 1.3.0 of the Wearable Support library. Then, you enable interactive watch faces in your watch face style using setAcceptsTapEvents(true):

setWatchFaceStyle(new WatchFaceStyle.Builder(mService)
    .setAcceptsTapEvents(true)
    // other style customizations
    .build());

To receive taps, you can override the following method:

@Override
public void onTapCommand(int tapType, int x, int y, long eventTime) { }

You will receive events TAP_TYPE_TOUCH when the user initially taps on the screen, TAP_TYPE_TAP when the user releases their finger, and TAP_TYPE_TOUCH_CANCEL if the user moves their finger while touching the screen. The events will contain (x,y) coordinates of where the touch event occurred. You should note that other interactions such as swipes and long presses are reserved for use by the Android Wear system user interface.

And that's it! Adding interaction to your existing watch faces is really easy with just a few extra lines of code. We have updated the WatchFace sample to show a complete implementation, and design and development documentation describing the API in detail.

Wi-Fi added to LG G Watch R

This release also brings Wi-Fi support to the LG G Watch R. Wi-Fi support is already available in many Android Wear watches and allows the watch to communicate with the companion phone without requiring a direct Bluetooth connection. So, you can leave your phone at home, and as long as you have Wi-Fi, you can use your watch to receive notifications, send messages, make notes, or ask Google a question. As a developer, you should ensure that you use the Data API to abstract away your communications, so that your application will work on any kind of Android Wear watch, even those without Wi-Fi.

Updates to existing watches

This update to Android Wear will roll out via an over-the-air (OTA) update to all Android Wear watches over the coming weeks. The wearable support library version 1.3 provides the implementation for touch interactions, and is designed to continue working on devices which have not been updated. However, the touch support will only work on updated devices, so you should wait to update your apps on Google Play until the OTA rollout is complete, which we'll announce on the Android Wear Developers Google+ community. If you want to release immediately but check if touch interactions are available, you can use this code snippet:

PackageInfo packageInfo = PackageManager.getPackageInfo("com.google.android.wearable.app", 0);
if (packageInfo.versionCode > 720000000) {
  // Supports taps - cache this result to avoid calling PackageManager again
} else {
  // Device does not support taps yet
}


Android Wear developers have created thousands of amazing apps for the platform and we can't wait to see the interactive watch faces you build. If you're looking for a little inspiration, or just a cool new watch face, check out the Interactive Watch Faces collection on Google Play.

Join the discussion on

+Android Developers

20 Aug 2015 4:31pm GMT

17 Aug 2015

feedAndroid Developers Blog

Develop a sweet spot for Marshmallow: Official Android 6.0 SDK & Final M Preview

By Jamal Eason, Product Manager, Android

Android 6.0 Marshmallow

Whether you like them straight out of the bag, roasted to a golden brown exterior with a molten center, or in fluff form, who doesn't like marshmallows? We definitely like them! Since the launch of the M Developer Preview at Google I/O in May, we've enjoyed all of your participation and feedback. Today with the final Developer Preview update, we're introducing the official Android 6.0 SDK and opening Google Play for publishing your apps that target the new API level 23 in Android Marshmallow.

Get your apps ready for Android Marshmallow

The final Android 6.0 SDK is now available to download via the SDK Manager in Android Studio. With the Android 6.0 SDK you have access to the final Android APIs and the latest build tools so that you can target API 23. Once you have downloaded the Android 6.0 SDK into Android Studio, update your app project compileSdkVersion to 23 and you are ready to test your app with the new platform. You can also update your app to targetSdkVersion to 23 test out API 23 specific features like auto-backup and app permissions.

Along with the Android 6.0 SDK, we also updated the Android Support Library to v23. The new Android Support library makes it easier to integrate many of the new platform APIs, such as permissions and fingerprint support, in a backwards-compatible manner. This release contains a number of new support libraries including: customtabs, percent, recommendation, preference-v7, preference-v14, and preference-leanback-v17.

Check your App Permissions

Along with the new platform features like fingerprint support and Doze power saving mode, Android Marshmallow features a new permissions model that streamlines the app install and update process. To give users this flexibility and to make sure your app behaves as expected when an Android Marshmallow user disables a specific permission, it's important that you update your app to target API 23, and test the app thoroughly with Android Marshmallow users.

How to Get the Update

The Android emulator system images and developer preview system images have been updated for supported Nexus devices (Nexus 5, Nexus 6, Nexus 9 & Nexus Player) to help with your testing. You can download the device system images from the developer preview site. Also, similar to the previous developer update, supported Nexus devices will receive an Over-the-Air (OTA) update over the next couple days.

Although the Android 6.0 SDK is final, the devices system images are still developer preview versions. The preview images are near final but they are not intended for consumer use. Remember that when Android 6.0 Marshmallow launches to the public later this fall, you'll need to manually re-flash your device to a factory image to continue to receive consumer OTA updates for your Nexus device.

What is New

Compared to the previous developer preview update, you will find this final API update fairly incremental. You can check out all the API differences here, but a few of the changes since the last developer update include:

Upload your Android Marshmallow apps to Google Play

Google Play is now ready to accept your API 23 apps via the Google Play Developer Console on all release channels (Alpha, Beta & Production). At the consumer launch this fall, the Google Play store will also be updated so that the app install and update process supports the new permissions model for apps using API 23.

To make sure that your updated app runs well on Android Marshmallow and older versions, we recommend that you use Google Play's newly improved beta testing feature to get early feedback, then do a staged rollout as you release the new version to all users.

17 Aug 2015 5:23pm GMT

14 Aug 2015

feedAndroid Developers Blog

Barcode Detection in Google Play services

Posted by Laurence Moroney, Developer Advocate

With the release of Google Play services 7.8 we're excited to announce that we've added new Mobile Vision APIs which provides the Barcode Scanner API to read and decode a myriad of different barcode types quickly, easily and locally.

Barcode detection

Classes for detecting and parsing bar codes are available in the com.google.android.gms.vision.barcode namespace. The BarcodeDetector class is the main workhorse -- processing Frame objects to return a SparseArray<Barcode> types.

The Barcode type represents a single recognized barcode and its value. In the case of 1D barcode such as UPC codes, this will simply be the number that is encoded in the barcode. This is available in the rawValue property, with the detected encoding type set in the format field.

For 2D barcodes that contain structured data, such as QR codes, the valueFormat field is set to the detected value type, and the corresponding data field is set. So, for example, if the URL type is detected, the constant URL will be loaded into the valueFormat, and the URL property will contain the desired value. Beyond URLs, there are lots of different data types that the QR code can support -- check them out in the documentation here.

When using the API, you can read barcodes in any orientation. They don't always need to be straight on, and oriented upwards!

Importantly, all barcode parsing is done locally, making it really fast, and in some cases, such as PDF-417, all the information you need might be contained within the barcode itself, so you don't need any further lookups.

You can learn more about using the API by checking out the sample on GitHub. This uses the Mobile Vision APIs along with a Camera preview to detect both faces and barcodes in the same image.

Supported Bar Code Types

The API supports both 1D and 2D bar codes, in a number of sub formats.

For 1D Bar Codes, these are:

AN-13
EAN-8
UPC-A
UPC-E
Code-39
Code-93
Code-128
ITF
Codabar

For 2D Bar Codes, these are:

QR Code
Data Matrix
PDF 417

Learn More

It's easy to build applications that use bar code detection using the Barcode Scanner API, and we've provided lots of great resources that will allow you to do so. Check them out here:

Follow the Code Lab

Read the Mobile Vision Documentation

Explore the sample

Join the discussion on

+Android Developers

14 Aug 2015 5:15pm GMT

13 Aug 2015

feedAndroid Developers Blog

Face Detection in Google Play services

Posted by Laurence Moroney, Developer Advocate

With the release of Google Play services 7.8, we announced the addition of new Mobile Vision APIs, which includes a new Face API that finds human faces in images and video better and faster than before. This API is also smarter at distinguishing faces at different orientations and with different facial features facial expressions.

Face Detection

Face Detection is a leap forward from the previous Android FaceDetector.Face API. It's designed to better detect human faces in images and video for easier editing. It's smart enough to detect faces even at different orientations -- so if your subject's head is turned sideways, it can detect it. Specific landmarks can also be detected on faces, such as the eyes, the nose, and the edges of the lips.

Important Note

This is not a face recognition API. Instead, the new API simply detects areas in the image or video that are human faces. It also infers from changes in the position frame to frame that faces in consecutive frames of video are the same face. If a face leaves the field of view, and re-enters, it isn't recognized as a previously detected face.


Detecting a face

When the API detects a human face, it is returned as a Face object. The Face object provides the spatial data for the face so you can, for example, draw bounding rectangles around a face, or, if you use landmarks on the face, you can add features to the face in the correct place, such as giving a person a new hat.

Orientation

The Face API is smart enough to detect faces in multiple orientations. As the head is a solid object that is capable of moving and rotating around multiple axes, the view of a face in an image can vary wildly.

Here's an example of a human face, instantly recognizable to a human, despite being oriented in greatly different ways:

The API is capable of detecting this as a face, even in the circumstances where as much as half of the facial data is missing, and the face is oriented at an angle, such as in the corners of the above image.

Here are the method calls available to a face object:

Landmarks

A landmark is a point of interest within a face. The API provides a getLandmarks() method which returns a List , where a Landmark object returns the coordinates of the landmark, where a landmark is one of the following: Bottom of mouth, left cheek, left ear, left ear tip, left eye, left mouth, base of nose, right cheek, right ear, right ear tip, right eye or right mouth.

Activity

In addition to detecting the landmark, the API offers the following function calls to allow you to smartly detect various facial states:

Thus, for example, you could write an app that only takes a photo when all of the subjects in the image are smiling.

Learn More

It's easy to build applications that use facial detection using the Face API, and we've provided lots of great resources that will allow you to do so. Check them out here:

Follow the Code Lab

Read the Documentation

Explore the sample

Join the discussion on

+Android Developers

13 Aug 2015 10:45pm GMT

Google Play services 7.8 - Let’s see what’s Nearby!

Posted by Magnus Hyttsten, Developer Advocate, Play services team

Today we've finished the roll-out of Google Play services 7.8. In this release, we've added two new APIs. The Nearby Messages API allows you to build simple interactions between nearby devices and people, while the Mobile Vision API helps you create apps that make sense of the visual world, using real-time on-device vision technology. We've also added optimization and new features to existing APIs. Check out the highlights in the video or read about them below.

Nearby Messages

Nearby Messages introduces a cross-platform API to find and communicate with mobile devices and beacons, based on proximity. Nearby uses a combination of Bluetooth, Wi-Fi, and an ultrasonic audio modem to connect devices. And it works across Android and iOS. For more info on Nearby Messages, check out the documentation and the launch blog post.

Mobile Vision API

We're happy to announce a new Mobile Vision API. Mobile Vision has two components.

The Face API allows developers to find human faces in images and video. It's faster, more accurate and provides more information than the Android FaceDetector.Face API. It finds faces in any orientation, allows developers to find landmarks such as the eyes, nose, and mouth, and identifies faces that are smiling and/or have their eyes open. Applications include photography, games, and hands-free user interfaces.

The Barcode API allows apps to recognize barcodes in real-time, on device, in any orientation. It supports a range of barcodes and can detect multiple barcodes at once. For more information, check out the Mobile Vision documentation.

Google Cloud Messaging

And finally, Google Cloud Messaging - Google's simple and reliable messaging service - has expanded notification to support localization for Android. When composing the notification from the server, set the appropriate body_loc_key, body_loc_args, title_loc_key, and title_loc_args. GCM will handle displaying the notification based on current device locale, which saves you having to figure out which messages to display on which devices! Check out the docs for more info.

And getting ready for the Android M release, we've added high and normal priority to GCM messaging, giving you additional control over message delivery through GCM. Set messages that need immediate users attention to high priority, e.g., chat message alert, incoming voice call alert. And keep the remaining messages at normal priority so that it can be handled in the most battery efficient way without impeding your app performance.

SDK Now Available!

You can get started developing today by downloading the Google Play services SDK from the Android SDK Manager.

To learn more about Google Play services and the APIs available to you through it, visit our documentation on Google Developers.

Join the discussion on

+Android Developers

13 Aug 2015 8:12pm GMT

Android Developer Story: Zabob Studio and Buff Studio reach global users with Google Play

Posted by Lily Sheringham, Google Play team

South Korean Games developers Zabob Studio and Buff Studio are start-ups seeking to become major players in the global mobile games industry.

Established in 2013, Zabob Studio was set up by Kwon Dae-hyeon and his wife in 2013. This couple-run business but they have already published ten games, including hits 'Zombie Judgement Day' and 'Infinity Dungeon.' So far, the company has generated more than KRW ₩140M (approximately $125,000 USD) in sales revenue, with about 60 percent of the studio's downloads coming from international markets, such as Taiwan and Brazil.

Elsewhere, Buff Studio was founded in 2014 and right from the start, its first game Buff Knight was an instant hit. It was even featured as the 'Game of the Week' on Google Play and was included in "30 Best Games of 2014" lists. A sequel is already in the works showing the potential of the franchise.

In this video, Kwon Dae-hyeon, CEO of Zabob Studio ,and Kim Do-Hyeong, CEO of Buff Studio, talk about how Google Play services and the Google Play Developer Console have helped them maintain a competitive edge, market their games efficiently to global users and grow revenue on the platform.

Android Developer Story: Buff Studio - Reaching global users with Google Play
Android Developer Story: Zabob Studio - Growing revenue with Google Play

Check Zabob Studio apps and Buff Knight on Google Play!

We're pleased to share that Android Developer Stories will now come with translated subtitles on YouTube in popular languages around the world. Find out how to turn on YouTube captions. To read locally translated blog posts, visit the Google developer blog in Korean.

Join the discussion on

+Android Developers

13 Aug 2015 6:19pm GMT

12 Aug 2015

feedAndroid Developers Blog

Android Experiments: A celebration of creativity and code

Posted by Roman Nurik, Design Advocate, and Richard The, Google Creative Lab

Android was created as an open and flexible platform, giving people more ways to come together to imagine and create. This spirit of invention has allowed developers to push the boundaries of mobile development and has helped make Android the go-to platform for creative projects in more places-from phones, to tablets, to watches, and beyond. We set out to find a way to celebrate the creative, experimental Android work of developers everywhere and inspire more developers to get creative with technology and code.

Today, we're excited to launch Android Experiments: a showcase of inspiring projects on Android and an open invitation for all developers to submit their own experiments to the gallery.


The 20 initial experiments show a broad range of creative work-from camera experiments to innovative Android Wear apps to hardware hacks to cutting edge OpenGL demos. All are built using platforms such as the Android SDK and NDK, Android Wear, the IOIO board, Cinder, Processing, OpenFrameworks and Unity. Each project creatively examines in small and big ways how we think of the devices we interact with every day.

Today is just the beginning as we're opening up experiment submissions to creators everywhere. Whether you're a student just starting out, or you've been at it for a while, and no matter the framework it uses or the device it runs on, Android Experiments is open to everybody.

Check out Android Experiments to view the completed projects, or to submit one of your own. While we can't post every submission, we'd love to see what you've created.

Follow along to see what others build at AndroidExperiments.com.

12 Aug 2015 4:15pm GMT

10 Aug 2015

feedAndroid Developers Blog

Low-overhead rendering with Vulkan

Posted by Shannon Woods, Technical Program Manager

Developers of games and 3D graphics applications have one key challenge to meet: How complex a scene can they draw in a small fraction of a second? Much of the work in graphics development goes into organizing data so it can be efficiently consumed by the GPU for rendering. But even the most careful developers can hit unforeseen bottlenecks, in part because the drivers for some graphics processors may reorganize all of that data before it can actually be processed. The APIs used to control these drivers are also not designed for multi-threaded use, requiring synchronization with locks around calls that could be more efficiently done in parallel. All of this results in CPU overhead, which consumes time and power that you'd probably prefer to spend drawing your scene.

Lowering overhead and handing control to developers

In order to address some of the sources of CPU overhead and provide developers with more explicit control over rendering, we've been working to bring a new 3D rendering API, Vulkan™, to Android. Like OpenGL™ ES, Vulkan is an open standard for 3D graphics and rendering maintained by Khronos. Vulkan is being designed from the ground up to minimize CPU overhead in the driver, and allow your application to control GPU operation more directly. Vulkan also enables better parallelization by allowing multiple threads to perform work such as command buffer construction at once.

An API is only useful if it does what you expect

To make it easier to write an application once that works across a variety of devices, Android 5.0 Lollipop significantly expanded the Android Compatibility Test Suite (CTS) with over fifty thousand new tests for OpenGL ES, and many more have been added since. This provides an extensive open source test suite for identifying problems in drivers so that they can be fixed, creating a more robust and reliable experience for both developers and end users. For Vulkan, we'll not only develop similar tests for use in the Android CTS, but we'll also contribute them to Khronos for use in Vulkan's own open source Conformance Test Suite. This will enable Khronos to test Vulkan drivers across platforms and hardware, and improve the 3D graphics ecosystem as a whole.

It's all about developer choice

We'll be working hard to help create, test, and ship Vulkan, but at the same time, we're also going to contribute to and support OpenGL ES. As a developer, you'll be able to choose which API is right for you: the simplicity of OpenGL ES, or the explicit control of Vulkan. We're committed to providing an excellent developer experience, no matter which API you choose.

Vulkan is still under development, but you'll be able to find specifications, tests, and tools once they are released at http://www.khronos.org/vulkan.

10 Aug 2015 12:58pm GMT

30 Jul 2015

feedAndroid Developers Blog

Get your hands on Android Studio 1.3

Posted by Jamal Eason, Product Manager, Android

Previewed earlier this summer at Google I/O, Android Studio 1.3 is now available on the stable release channel. We appreciated the early feedback from those developers on our canary and beta channels to help ship a great product.

Android Studio 1.3 is our biggest feature release for the year so far, which includes a new memory profiler, improved testing support, and full editing and debugging support for C++. Let's take a closer look.

New Features in Android Studio 1.3

Performance & Testing Tools

Code and SDK Management

Time to Update

An important thing to remember is that an update to Android Studio does not require you to change your Android app projects. With updating, you get the latest features but still have control of which build tools and app dependency versions you want to use for your Android app.

For current developers on Android Studio, you can check for updates from the navigation menu. For new users, you can learn more about Android Studio on the product overview page or download the stable version from the Android Studio download site.

We are excited to launch this set of features in Android Studio and we are hard at work developing the next set of tools to make develop Android development easier on Android Studio. As always we welcome feedback on how we can help you. Connect with the Android developer tools team on Google+.

Join the discussion on

+Android Developers

30 Jul 2015 9:03pm GMT

Iterate faster on Google Play with improved beta testing

Posted by Ellie Powers, Product Manager, Google Play

Today, Google Play is making it easier for you to manage beta tests and get your users to join them. Since we launched beta testing two years ago, developers have told us that it's become a critical part of their workflow in testing ideas, gathering rapid feedback, and improving their apps. In fact, we've found that 80 percent of developers with popular apps routinely run beta tests as part of their workflow.

Improvements to managing a beta test in the Developer Console

Currently, the Google Play Developer Console lets developers release early versions of their app to selected users as an alpha or beta test before pushing updates to full production. The select user group downloads the app on Google Play as normal, but can't review or rate it on the store. This gives you time to address bugs and other issues without negatively impacting your app listing.

Based on your feedback, we're launching new features to more effectively manage your beta tests, and enable users to join with one click.

How developers are finding success with beta testing

Beta testing is one of the fast iteration features of Google Play and Android that help drive success for developers like Wooga, the creators of hit games Diamond Dash, Jelly Splash, and Agent Alice. Find out more about how Wooga iterates on Android first from Sebastian Kriese, Head of Partnerships, and Pal Tamas Feher, Head of Engineering.


Kabam is a global leader in AAA quality mobile games developed in partnership with Hollywood studios for such franchises such as Fast & Furious, Marvel, Star Wars and The Hobbit. Beta testing helps Kabam engineers perfect the gameplay for Android devices before launch. "The ability to receive pointed feedback and rapidly reiterate via alpha/beta testing on Google Play has been extremely beneficial to our worldwide launches," said Kabam VP Rob Oshima.

Matt Small, Co-Founder of Vector Unit recently told us how they've been using beta testing extensively to improve Beach Buggy Racing and uncover issues they may not have found otherwise. You can read Matt's blog post about beta testing on Google Play on Gamasutra to hear about their experience. We've picked a few of Matt's tips and shared them below:

  1. Limit more sensitive builds to a closed beta where you invite individual testers via email addresses. Once glaring problems are ironed out, publish your app to an open beta to gather feedback from a wider audience before going to production.
  2. Set expectations early. Let users know about the risks of beta testing (e.g. the software may not be stable) and tell them what you're looking for in their feedback.
  3. Encourage critical feedback. Thank people when their criticisms are thoughtful and clearly explained and try to steer less-helpful feedback in a more productive direction.
  4. Respond quickly. The more people see actual responses from the game developer, the more encouraged they are to participate.
  5. Enable Google Play game services. To let testers access features like Achievements and Leaderboards before they are published, go into the Google Play game services testing panel and enable them.

We hope this update to beta testing makes it easier for you to test your app and gather valuable feedback and that these tips help you conduct successful tests. Visit the Developer Console Help Center to find out more about setting up beta testing for your app.

Join the discussion on

+Android Developers

30 Jul 2015 4:10pm GMT

29 Jul 2015

feedAndroid Developers Blog

Auto Backup for Apps made simple

Posted by Wojtek Kaliciński, Developer Advocate, Android

Auto Backup for Apps makes seamless app data backup and restore possible with zero lines of application code. This feature will be available on Android devices running the upcoming M release. All you need to do to enable it for your app is update the targetSdkVersion to 23. You can test it now on the M Developer Preview, where we've enabled Auto Backup for all apps regardless of targetSdkVersion.

Auto Backup for Apps is provided by Google to both users and developers at no charge. Even better, the backup data stored in Google Drive does not count against the user's quota. Please note that data transferred may still incur charges from the user's cellular / internet provider.


What is Auto-Backup for Apps?

By default, for users that have opted in to backup, all of the data files of an app are automatically copied out to a user's Drive. That includes databases, shared preferences and other content in the application's private directory, up to a limit of 25 megabytes per app. Any data residing in the locations denoted by Context.getCacheDir(), Context.getCodeCacheDir() and Context.getNoBackupFilesDir() is excluded from backup. As for files on external storage, only those in Context.getExternalFilesDir() are backed up.

How to control what is backed up

You can customize what app data is available for backup by creating a backup configuration file in the res/xml folder and referencing it in your app's manifest:


<application
        android:fullBackupContent="@xml/mybackupscheme">

In the configuration file, specify <include/> or <exclude/> rules that you need to fine tune the behavior of the default backup agent. Please refer to a detailed explanation of the rules syntax available in the documentation.

What to exclude from backup

You may not want to have certain app data eligible for backup. For such data, please use one of the mechanisms above. For example:

With such a diverse landscape of apps, it's important that developers consider how to maximise the benefits to the user of automatic backups. The goal is to reduce the friction of setting up a new device, which in most cases means transferring over user preferences and locally saved content.

For example, if you have the user's account stored in shared preferences such that it can be restored on install, they won't have to even think about which account they used to sign in with previously - they can submit their password and get going!

If you support a variety of log-ins (Google Sign-In and other providers, username/password), it's simple to keep track of which log-in method was used previously so the user doesn't have to.

Transitioning from key/value backups

If you have previously implemented the legacy, key/value backup by subclassing BackupAgent and setting it in your Manifest (android:backupAgent), you're just one step away from transitioning to full-data backups. Simply add the android:fullBackupOnly="true" attribute on <application/>. This is ignored on pre-M versions of Android, meaning onBackup/onRestore will still be called, while on M+ devices it lets the system know you wish to use full-data backups while still providing your own BackupAgent.

You can use the same approach even if you're not using key/value backups, but want to do any custom processing in onCreate(), onFullBackup() or be notified when a restore operation happens in onRestoreFinished(). Just remember to call super.onFullBackup() if you want to retain the system implementation of XML include/exclude rules handling.

What is the backup/restore lifecycle?

The data restore happens as part of the package installation, before the user has a chance to launch your app. Backup runs at most once a day, when your device is charging and connected to Wi-Fi. If your app exceeds the data limit (currently set at 25 MB), no more backups will take place and the last saved snapshot will be used for subsequent restores. Your app's process is killed after a full backup happens and before a restore if you invoke it manually through the bmgr command (more about that below).

Test your apps now

Before you begin testing Auto Backup, make sure you have the latest M Developer Preview on your device or emulator. After you've installed your APK, use the adb shell command to access the bmgr tool.

Bmgr is a tool you can use to interact with the Backup Manager:

If you forget to invoke bmgr run, you might see errors in Logcat when trying the fullbackup and restore commands. If you are still having problems, make sure you have Backup enabled and a Google account set up in system Settings -> Backup & reset.

Learn more

You can find a sample application that shows how to use Auto Backup on our GitHub. The full documentation is available on developer.android.com

Join the Android M Developer Preview Community on Google+ for more information on Android M features and remember to report any bugs you find with Auto Backup in the bug tracker.

Join the discussion on

+Android Developers

29 Jul 2015 7:00pm GMT

28 Jul 2015

feedAndroid Developers Blog

[New eBook] Download The No-nonsense Guide to App Growth

Originally posted on the AdMob Blog.

What's the secret to rapid growth for your app?

Play Store or App Store optimization? A sophisticated paid advertising strategy? A viral social media campaign?

While all of these strategies could help you grow your user base, the foundation for rapid growth is much more basic and fundamental-you need an engaging app.

This handbook will walk you through practical ways to increase your app's user engagement to help you eventually transition to growth. You'll learn how to:

Download a free copy here.

For more tips on app monetization, be sure to stay connected on all things AdMob by following our Twitter and Google+ pages.

Posted by Raj Ajrawat, Product Specialist, AdMob

Join the discussion on

+Android Developers

28 Jul 2015 4:58pm GMT