Introducing Microsoft Health

Today we are announcing a new platform called Microsoft Health that is designed to make it easier for you to track your personal fitness and give you a more holistic view into your fitness activities. Microsoft Health will unite data like steps, calories, heart rate and more from different health and fitness devices and services to give you powerful insights on the data collected. Microsoft Health will work with with UP by Jawbone, MapMyFitness, MyFitnessPal and RunKeeper today – with support for more devices and services to come. For everything you need to know about our new Microsoft Health platform, read this blog post from Corporate Vice President Todd Holmdahl. And also check out this story on Microsoft News Center.

Microsoft Band_Hero_2

We are also announcing the Microsoft Band. The Microsoft Band is a “smart band” designed to be worn 24 hours a day for people active at work (like me) or at the gym (not like me) or both. It has 10 smart sensors for 24 hour heart rate monitoring, calorie burn measurement, advanced sleep quality tracking and more. The Microsoft Band will keep you connected at a glance with smart notifications including incoming calls, emails, texts and social updates as well as access to Cortana from your Windows Phone device. The Microsoft Band is now available in limited quantities in the U.S. at MicrosoftStore.com and starting October 30th at Microsoft Retail Stores for $199 (U.S.).

4de3157d-5cdb-4f4a-acce-92847d8d6b0b 32e6618d-8347-4e56-894e-e79a2e440663 19fd4bc3-faa7-496c-b83c-b382d3bb5397

With the Microsoft Health Windows Phone app, you can personalize your Microsoft Band. You can check out your wellness goals and your fitness data like your heart rate, steps, calorie burn, and sleep quality as well as maximize your fitness with Guided Workouts, 24-hour heart rate monitoring and automatic activity counting. You’ll also be able to configure email previews and at-a-glance calendar alerts and take notes and set reminders with Cortana! Download the Microsoft Health app today from the Windows Phone Store.

Browse, skim, study your favorite nonfiction books more easily with Google Play

Have you ever had breakfast for dinner? Or checked the score of the big game before you watched it? Traditional ebook reading is great when you want to read books from start to finish—but what if you want to skim through recipes; jump between questions and answers, researching a topic; or read chapters out of order? Today we’re launching a new version of the Google Play Books app for Android phones and tablets with a redesigned reading experience that’s optimized for nonfiction books. This new reader lets you easily skim an entire book, browse all your notes and highlights, and quickly jump back and forth between different spots. And it’s still great for fiction ebook reading, too.

Imagine you’re cooking two recipes from the same cookbook— roast chicken and bruschetta from Around the Table. No problem. Take a peek at the new table of contents view to skip straight to the “Bountiful Tuscan Feast” chapter. Once you’ve found your recipes, you can easily jump between them using new Quick Bookmarks.

When you’re planning your next trip, pick up a Fodor’s travel guide and use Skim Mode to browse the whole book and get a sense of which destinations you want to be sure to visit. Bookmark your favorite spots for easy finding later.

If you’re a student, you can highlight text and take notes while you’re reading, then refer back to them later with Skim Mode—the perfect study buddy.

Of course, all the things you loved about Google Play Books before are still here:

  • Tap on any location name in a book to get a Geo Card with links to access Google Maps, Wikipedia or Web Search 
  • Tap and press on any word to look it up in the dictionary 
  • Select text to highlight in four colors, take notes or translate from any language 
  • Don’t lose your place! Your reading position is synchronized across all your devices: phone, tablet and web 

Ebook reading has always been great for getting lost in a well-crafted story (in the dark using night mode is my favorite!), but now it’s a good fit for any type of book. Visit the Google Play store to have a look for yourself—just add any free sample to your library to start reading. Plan a trip, prepare a meal, research a topic or study for an exam—we’ve got you covered with the new reader app for Google Play Books.

Posted by Scott Dougall, director of product management for Google Play Books 

The fastest route between voice search and your app

By Jarek Wilkiewicz, Developer Advocate, Google Search

How many lines of code will it take to let your users say Ok Google, and search for something in your app? Hardly any. Starting today, all you need is a small addition to your AndroidManifest.xml in order to connect the Google Now SEARCH_ACTION with your searchable activity:

<activity android:name=".SearchableActivity">
    <intent-filter>
        <action android:name="com.google.android.gms.actions.SEARCH_ACTION"/>
        <category android:name="android.intent.category.DEFAULT"/>
    </intent-filter>
</activity>

Once you make these changes, your app can receive the SEARCH_ACTION intent containing the SearchManager.QUERY extra with the search expression.

At Google, we always look for innovative ways to help you improve mobile search and drive user engagement back to your app. For example, users can now say to the Google app: “Ok Google, search pizza on Eat24” or “Ok Google, search for hotels in Maui on TripAdvisor.”

This feature is available on English locale Android devices running Jelly Bean and above with the Google app v3.5 or greater. Last but not least, users can enable the Ok Google hot-word detection from any screen, which offers them the fastest route between their search command and your app!

Movie night made better with the new Google Play Movies & TV app

After a long day, you want to sit back, kick up your feet and watch a hot new release. With today’s updated Google Play Movies & TV app for Android, your dinner and a movie—at home—is about to get a lot better.

Now when you cast your favorite movie or show to your TV using Chromecast or the new Nexus Player, you’ll get actor or soundtrack cards on your phone or tablet while you are watching, with extra information about what’s playing on screen. Next time you’re burning to know where you’ve seen that actress before, or want to remember a song for later, you don’t have to hit pause or fumble with your controller. It’s at your fingertips—just like your popcorn. Look for the Info Cards badge on the Google Play store to find movies and TV shows that offer this feature.

Google Play Movies also has a new look and feel inspired by Google’s material design with bigger images and smoother transitions. And the redesigned “Watch Now” tab makes the experience of finding a movie as pleasant as watching the movie itself. Now you’ll see more movie recommendations in Watch Now, and you’ll be able to watch a trailer directly in the app.

The new Android app will rollout to everyone over the next week. We hope this update helps make your living room closer to the at-home theater of your dreams. Cue the opening credits!

Posted by Ben Serridge, senior product manager for Google Play Movies & TV

OneDrive app for Windows Phone updated with new UI

The OneDrive app for Windows Phone received a pretty awesome update today. It has been redesigned to make it really easy for you to find and open the files and folders you’re looking for. The new “navigation drawer” gives you quick access to recent files, your shared files, as well as download and upload status and other settings. And even better: you can add your work account here too (OneDrive for Business)!

WP

Yesterday, OneDrive also had a pretty big announcement: If you are an Office 365 subscriber, you will now get unlimited OneDrive storage at no additional cost. For more details on this, see this blog post from Chris Jones, Corporate Vice President for OneDrive & SharePoint.

Fitbit update for Windows Phone 8.1 brings Cortana integration and more

Fitbit has updated their app for Windows Phone 8.1 today bringing Cortana integration, challenges, and MobileTrack support.

wp_ss_20141027_0002 wp_ss_20141027_0003

With Cortana, you can now quickly log any of the 350,000 foods in the Fitbit database simply by saying something like “Fitbit, I ate sushi for dinner” (which I did and it was delicious). Fitbit has also created a custom experience for Cortana directly within the Fitbit app (in beta) as well – you’ll notice a new microphone icon at the bottom of the app that brings it up. Try things like “Fitbit, I ate lasagna for dinner” or “Fitbit, I had a coffee with breakfast”. You can also use Cortana to create silent alarms for Fitbit trackers.

You can also challenge your friends and family to meet and beat goals for some motivational and fun competitions such as Daily Showdown, Workweek Hustle and Weekend Warrior.

And the Fitbit app now has MobileTrack that lets you track steps directly from your Microsoft Lumia device.

Finally, this update brings new language support French, German, Italian and Spanish.

If you don’t have the Fitbit app installed, you can download it here from the Windows Phone Store.

Tips for integrating with Google Accounts on Android

By Laurence Moroney, Developer Advocate

Happy Tuesday! We’ve had a few questions come in recently regarding Google Accounts on Android, so we’ve put this post together to show you some of our best practices. The tips today will focus on Android-based authentication, which is easily achieved through the integration of Google Play services. Let’s get started.

Unique Identifiers

A common confusion happens when developers use the account name (a.k.a. email address) as the primary key to a Google Account. For instance, when using GoogleApiClient to sign in a user, a developer might use the following code inside of the onConnected callback for a registered GoogleApiClient.ConnectedCallbacks listener:

[Error prone pseudocode]
String accountName = Plus.AccountApi.getAccountName(mGoogleApiClient);
// createLocalAccount() is specific to the app's local storage strategy.
createLocalAccount(accountName);

While it is OK to store the email address for display or caching purposes, it is possible for users to change the primary email address on a Google Account. This can happen with various types of accounts, but these changes happen most often with Google Apps For Work accounts.

So what’s a developer to do? Use the Google Account ID (as opposed to the Account name) to key any data for your app that is associated to a Google Account. For most apps, this simply means storing the Account ID and comparing the value each time the onConnected callback is invoked to ensure the data locally matches the currently logged in user. The API provides methods that allow you to get the Account ID from the Account Name. Here is an example snippet you might use:

[Google Play Services 6.1+]
String accountName = Plus.AccountApi.getAccountName(mGoogleApiClient);
String accountID = GoogleAuthUtil.getAccountId(accountName);
createLocalAccount(accountID);
[Earlier Versions of Google Play Services (please upgrade your client)]
Person currentUser = Plus.PeopleApi.getCurrentPerson(mGoogleApiClient);
String accountID = currentUser.getID();
createLocalAccount(accountID);

This will key the local data against a Google Account ID, which is unique and stable for the user even after changing an email address.

So, in the above scenario, if your data was keyed on an ID, you wouldn’t have to worry if your users change their email address. When they sign back in, they’ll still get the same ID, and you won’t need to do anything with your data.

Multiple Accounts

If your app supports multiple account connections simultaneously (like the Gmail user interface shown below), you are calling setAccountName on the GoogleApiClient.Builder when constructing GoogleApiClients. This requires you to store the account name as well as the Google Account ID within your app. However, the account name you’ve stored will be different if the user changes their primary email address. The easiest way to deal with this is to prompt the user to re-login. Then, update the account name when onConnected is called after login. Any time a login occurs you, can use code such as this to compare Account IDs and update the email address stored locally for the Account ID.

[Google Play Services 6.1+]
String accountName = Plus.AccountApi.getAccountName(mGoogleApiClient);
String accountID = GoogleAuthUtil.getAccountId(accountName);
// isExistingLocalAccount(), createLocalAccount(), 
// getLocalDataAccountName(), and updateLocalAccountName() 
// are all specific to the app's local storage strategy.
boolean existingLocalAccountData = isExistingLocalAccount(accountID);
if (!existingLocalAccountData) {
    // New Login.
    createLocalAccount(accountID, accountName);
} else {
    // Existing local data for this Google Account.
    String cachedAccountName = getLocalDataAccountName(accountID);    
    if (!cachedAccountName.equals(accountName)) {
        updateLocalAccountName(accountID, accountName);
    }
}

This scenario reinforces the importance of using the Account ID to store data all data in your app.

Online data

The same best practices above apply to storing data for Google Accounts in web servers for your app. If you are storing data on your servers in this manner and treating the email address as the primary key:


ID [Primary Key] Field 1 Field 2 Field 3
user1@gmail.com Value 1 Value 2 Value 3

You need to migrate to this model where the primary key is the Google Account ID.:


ID [Primary Key] Email Field 1 Field 2 Field 3
108759069548186989918 user1@gmail.com Value 1 Value 2 Value 3

If you don’t make Google API calls from your web server, you might be able to depend on the Android application to notify your web server of changes to the primary email address when implementing the updateLocalAccountName method referenced in the multiple accounts sample code above. If you make Google API calls from your web server, you likely implemented it using the Cross-client authentication and can detect changes via the OAuth2 client libraries or REST endpoints on your server as well.

Conclusion

When using Google Account authentication for your app, it’s definitely a best practice to use the account ID, as opposed to the account name to distinguish data for the user. In this post, we saw three scenarios where you may need to make changes to make your apps more robust. With the growing adoption of Google for Work, users who are changing their email address, but keeping the same account ID, may occur more frequently, so we encourage all developers to make plans to update their code as soon as possible.

Google Fit: An effortless, comprehensive view of your fitness.

When it comes to improving our fitness, every little effort counts. That’s why we’ve created Google Fit – a fitness app that helps you to start tracking your activity effortlessly and become more active, aware and motivated.

Google Fit uses sensors already built in to your Android phone to automatically detect walking, biking and running. And you can set and monitor your fitness goals based on your activity levels. It’s a great tool to discover how active you are and check in on your progress as you work on your fitness goals. In fact, you can check in just about anywhere, including your phone, the web, tablet and Android Wear devices.

You can also connect your favorite fitness devices and apps like Strava, Withings, Runtastic, Runkeeper and Noom Coach to Google Fit and we’ll surface all of the relevant data in one spot, giving you a clear and complete view of your fitness. No need to check one app to see your weight and another to review a run – with Google Fit, that data will all be surfaced in one, simple place.

Just keep your Android phone with you and we’ll make sure your activity counts – whether you’re cycling up steep hills, going for a morning jog or walking the dog.

Google Fit is available starting today on Google Play for devices running Android 4.0, Ice Cream Sandwich and above.

Sabrina Ellis, Director, Product Management, Android 

A sweet Lollipop, with a kevlar wrapping: New security features in Android 5.0.

With each new release of Android, we try to stay two steps ahead of the bad guys. When it comes to security, Lollipop is the biggest update for Android to date. From the moment you turn on a device running Android 5.0, you’ll have a wealth of new security features protecting you, like encryption by default and a lock screen that’s easier and more powerful than ever.

The simplest way to stay safe is now even easier 
What’s the simplest way to keep the data safe and secure on your mobile device? Use a screen lock! Lost and stolen devices are the number-one security issue affecting smartphone users. Still, a lot of people using mobile devices don’t use a pin or password because it takes too long to unlock, dozens of times per day. We’re making it easier than ever with Smart Lock, which lets you tell your phone to unlock using Bluetooth pairing, NFC, or simply your smile—faster than before. Plus, you can allow certain notifications to be accessible from the lock screen, helping you quickly get at the information you need while still keeping your device protected.

More secure, from the first time you turn it on 
People use safes and combination locks to protect their physical goods. With digital information, encryption acts like a safe to protect your information from thieves and snoops. That’s why we’ve worked hard to provide this added security for our users, which will now be the default from the moment you power on a new device running Lollipop, keeping your data safer without needing you to fiddle around in the settings. Full device encryption occurs at first boot, using a unique key that never leaves the device. This is the safest way to encrypt your device, which is why it’s how we’ve built encryption on Android since it first launched three years ago.

SELinux, making Android secure enough for the most demanding customers 
Android has had a strong application sandbox since the very beginning; Security Enhanced Linux (SELinux) pushes enforcement of the Android security model further into the core of the OS and makes it easier to audit and monitor so there’s less room for an attack. With Android 5.0, SELinux Enforcing mode is required for all applications on all devices. Multiple vulnerabilities have been prevented since we first introduced SELinux last year; by strengthening it even more, Android becomes a top choice for enterprise customers that have really strict security standards, such as the government. This is a feature that the broader security community helped us build, and is an example of how Android’s open nature helps make your device more secure every day.

There are a number of other features that were added to the platform to keep your devices secure. So, not only is Lollipop is the sweetest update of Android to date, we also built in a rigid (security) Lollipop stick for the core and and kevlar wrapping on the outside—to keep you safe from the bad guys, inside and out. Posted by: Adrian Ludwig, Lead Security Engineer, Android