Donate to e Foundation | Murena handsets with /e/OS | Own a part of Murena! Learn more

Commit 16cf6436 authored by Scott Main's avatar Scott Main Committed by Android Git Automerger
Browse files

am fbcb624b: Merge "docs: update reference links and misc revisions" into jb-mr1-dev

* commit 'fbcb624b':
  docs: update reference links and misc revisions
parents b86695d6 fbcb624b
Loading
Loading
Loading
Loading
+20 −17
Original line number Diff line number Diff line
@@ -25,8 +25,9 @@ div.cell-icon img {

  <h1 itemprop="name" style="margin-bottom:0;">Google Services</h1>
  <p itemprop="description">Google offers a variety of services that help you
enhance your app's capabilities, build new revenue streams, manage app distribution,
and track app usage.</p>
build new revenue streams, manage app distribution,
track app usage, and enhance your app with features such as maps, sign-in, and
cloud messaging.</p>
  <p>Because these services are offered directly by Google, they're not included in
  the Android platform. Some are provided by the Google Play
  service available on devices with Google Play,
@@ -43,34 +44,34 @@ and track app usage.</p>

<div class="landing-cell">
  <div class="cell-icon">
  <img src="{@docRoot}images/google/maps-pin.png">
  <img src="{@docRoot}images/google/maps-pin.png" width="40" >
  </div>
    <h4><a href="{@docRoot}google/play-services/maps.html"
    >Google Maps</a></h4>
    <p>The power of Google Maps is available to your app
    with an embeddable map view. You can customize the map with
    markers and overlays, control the user's perspective, animate the camera, and much more.</p>
    markers and overlays, control the user's perspective, draw lines
    and shapes, and much more.</p>
</div>

<div class="landing-cell">
  <div class="cell-icon">
  <img src="{@docRoot}images/google/plus-one.png">
  <img src="{@docRoot}images/google/plus-one.png" width="40" >
  </div>
    <h4><a href="{@docRoot}google/play-services/plus.html"
    >Google+</a></h4>
    <p>Authenticate your users by allowing them to sign in with Google+.
    Provide +1 buttons that allow users to recommend your app content and build customized
    content for posts on Google+.</p>
    <p>Authenticate users and allow them to sign in, add +1 buttons so users can
    recommend your app content, and allow them to share your content on Google+.</p>
</div>

<div class="landing-cell">
  <div class="cell-icon">
  <img src="{@docRoot}images/google/gcm-cloud.png">
  <img src="{@docRoot}images/google/gcm-cloud.png" width="40" >
  </div>
    <h4><a href="{@docRoot}google/gcm/index.html"
    >Google Cloud Messaging</a></h4>
    <p>Keep your users connected by delivering events with
    lightweight messages immediately from your web server. There are no quotas or charges
    <p>Immediately notify your users about timely events by delivering
    lightweight messages from your web server. There are no quotas or charges
    to use Google Cloud Messaging.</p>
</div>

@@ -83,7 +84,7 @@ and track app usage.</p>

<div class="landing-cell">
  <div class="cell-icon">
    <img src="{@docRoot}images/google/iab-99c.png" />
    <img src="{@docRoot}images/google/iab-99c.png" width="40" />
  </div>
    <h4><a href="{@docRoot}google/play/billing/index.html"
    >Google Play In-App Billing</a></h4>
@@ -95,24 +96,26 @@ and track app usage.</p>

<div class="landing-cell">
  <div class="cell-icon">
<img src="{@docRoot}images/google/analytics.png" />
<img src="{@docRoot}images/google/analytics.png" width="40" />
  </div>
    <h4><a class="external-link" 
href="https://developers.google.com/analytics/devguides/collection/android/v2/"
  >Google Analytics</a></h4>

<p>Measure your success and gain deeper insights into how mobile users engage with your content
by integrating Google Analytics with your app.</p>
<p>Measure your success and gain insights into how users engage with your app content
by integrating Google Analytics. You can track in-app purchases, the number of active users,
interaction patterns, and much more.
</p>
</div>

<div class="landing-cell">
  <div class="cell-icon">
    <img src="{@docRoot}images/google/admob-money.png" />
    <img src="{@docRoot}images/google/admob-money.png" width="40" />
  </div>
    <h4><a class="external-link" href="https://developers.google.com/mobile-ads-sdk/"
    >Google AdMob Ads</a></h4>
    <p>Display ads from AdMob offer you an alternative revenue opportunity that leverages
    multiple ad networks.
    multiple ad networks with targeted ads and several display formats.
    </p>
</div>
  
+0 −56
Original line number Diff line number Diff line
page.title=Google Analytics
page.landing=true
page.landing.intro=The Google Analytics Platform lets you measure user interactions with your business across various devices and environments. The platform provides all the computing resources to collect, store, process, and report on these user-interactions.
page.landing.link=https://developers.google.com/analytics/devguides/collection/android/v2/
page.landing.link.text=developers.google.com/analytics
page.landing.image=images/gps-analytics.png

@jd:body

<div class="landing-docs">
  <div class="col-6">
    <h3 style="clear:left">Key Developer Features</h3>
    
    <a href="https://developers.google.com/analytics/devguides/collection/android/v2/campaigns">
    <h4>Discover user geography and habits</h4>
    Discover where your users are coming from and how they are accessing your app,
    from the moment they download your app from the Google Play Store.</a>

    <a href="https://developers.google.com/analytics/devguides/collection/android/v2/ecommerce">
    <h4>Track monetization performance</h4>
    Monitor the success of mobile marketing campaigns by taking advantage of the end-to-end visibility
    into the performance of your in-app purchases and transactions.    
    </a>

    <a href="https://developers.google.com/analytics/devguides/collection/android/v2/screens">
    <h4>Monitor app usage</h4>
    Record data about the screens your users are viewing in your app and gain insight
    on what features they use most. All of this information can help you pinpoint specific
    markets and enhance features to make your app the best it can be.
    </a>

  </div>

  <div class="col-6 normal-links">
    <h3 style="clear:left">Getting Started</h3>
    <h4>Get the Google Play services SDK</h4>
    <p>The Google Analytics Android APIs are part of the Google Play services platform.</p>
    <p><a href="{@docRoot}google/play-services/download.html">Download and configure</a>
      the SDK to begin integrating Google Analytics into your app.
    </p>

    <h4>Visit the Google Analytics developer site</h4>
    <p>For instructions on how to fully integrate Google+ into your app, with code snippets, visit the
      <a href="https://developers.google.com/analytics/devguides/collection/android/v2/">Google
      Analytics developer documentation</a> located at developers.google.com.
    </p>
    
    <h4>See the reference documentation</h4>
    <p>
      The <a href="{@docRoot}google/play-services/reference/com/google/android/gms/analytics/package-summary.html">Google
      Analytics API reference</a> as well as the entire <a href="{@docRoot}google/play-services/reference/packages.html">Google
      Play services platform reference</a> is provided for you on this site.
    </p>

  </div>
</div>
 No newline at end of file
+64 −28
Original line number Diff line number Diff line
@@ -5,10 +5,10 @@ page.title=Authentication
  <div id="qv">    
    <h2>In this document</h2>
    <ol>
    <li><a href="#choose">Choosing an account</a></li>
    <li><a href="#obtain">Obtaining an authorization token</a></li>
    <li><a href="#handle">Handling exceptions</a></li>
    <li><a href="#use">Using the token</a></li>
    <li><a href="#choose">Choosing an Account</a></li>
    <li><a href="#obtain">Obtaining an Authorization Token</a></li>
    <li><a href="#handle">Handling Exceptions</a></li>
    <li><a href="#use">Using the Token</a></li>
    </ol>
  </div>
</div>
@@ -31,7 +31,8 @@ to carry out these basic steps for obtaining an authentication token.</p>
    a valid Google account is required and it must exist on the device. You can ask your users which
    account they want to use by enumerating the Google accounts on the device or using the
    built-in 
<a href="{@docRoot}google/play-services/reference/com/google/android/gms/common/AccountPicker.html">AccountPicker</a>
<a href="{@docRoot}reference/com/google/android/gms/common/AccountPicker.html">{@code
AccountPicker}</a>
    class to display a standard account picker view. You'll need the
    {@link android.Manifest.permission#GET_ACCOUNTS}
    permission set in your manifest file for both methods.
@@ -60,9 +61,12 @@ private String[] getAccountNames() {
  ways to get a token:</p>

    <ul>
      <li>Call one of the two overloaded <a href="{@docRoot}google/play-services/reference/com/google/android/gms/auth/GoogleAuthUtil.html#getToken(android.content.Context, java.lang.String, java.lang.String)">GoogleAuthUtil.getToken()</a> methods in a foreground activity where you can
      <li>Call one of the two overloaded <a
      href="{@docRoot}reference/com/google/android/gms/auth/GoogleAuthUtil.html#getToken(android.content.Context, java.lang.String, java.lang.String)"
      >{@code GoogleAuthUtil.getToken()}</a> methods in a foreground activity where you can
        display a dialog to the user to interactively handle authentication errors.</li>
      <li>Call one of the three <a href="{@docRoot}google/play-services/reference/com/google/android/gms/auth/GoogleAuthUtil.html#getTokenWithNotification(android.content.Context, java.lang.String, java.lang.String, android.os.Bundle)">getTokenWithNotification()</a>
      <li>Call one of the three <a href="{@docRoot}reference/com/google/android/gms/auth/GoogleAuthUtil.html#getTokenWithNotification(android.content.Context, java.lang.String, java.lang.String, android.os.Bundle)"
      >{@code getTokenWithNotification()}</a>
        methods if you are authenticating in a background service or sync adapter so that a notification is displayed if an authentication
        error occurs.</a></li>
    </ul>
@@ -76,7 +80,6 @@ String mScope;
String token;

...

try {
    token = GoogleAuthUtil.getToken(mActivity, mEmail, mScope);
} catch {
@@ -85,41 +88,62 @@ try {
</pre>

<p>Call this method off of the main UI thread since it executes network transactions. An easy way to do this
  is in an <a href="http://developer.android.com/reference/android/os/AsyncTask.html">AsyncTask</a>.
  is in an {@link android.os.AsyncTask}.
  The sample in the Google Play services SDK shows you how to wrap this call in an AsyncTask.
  If authentication is successful, the token is returned. If not, the exceptions described in <a href="#handle">Handling Exceptions</a>
  If authentication is successful, the token is returned. If not, the exceptions described in
<a href="#handle">Handling Exceptions</a>
  are thrown that you can catch and handle appropriately.
</p>

  <h3>Using getTokenWithNotification()</h3>
  <p>If you are obtaining authentication tokens in a background service or sync adapter, there are three overloaded <code>getTokenWithNotification()</code> methods
  <p>If you are obtaining authentication tokens in a background service or sync adapter, there
  are three overloaded
  <a href="{@docRoot}reference/com/google/android/gms/auth/GoogleAuthUtil.html#getTokenWithNotification(android.content.Context, java.lang.String, java.lang.String, android.os.Bundle)"
      >{@code getTokenWithNotification()}</a> methods
  that you can use:</p>
  <ul>
    <li><a href="{@docRoot}google/play-services/reference/com/google/android/gms/auth/GoogleAuthUtil.html#getTokenWithNotification(android.content.Context, java.lang.String, java.lang.String, android.os.Bundle)">getTokenWithNotification(Context context, String accountName, String scope, Bundle extras)</a>:
    <li><a href="{@docRoot}reference/com/google/android/gms/auth/GoogleAuthUtil.html#getTokenWithNotification(android.content.Context, java.lang.String, java.lang.String, android.os.Bundle)"
    >{@code getTokenWithNotification(Context context, String accountName, String scope, Bundle extras)}</a>:
    For background services. Displays a notification to the user when authentication errors occur.</li>
    <li><a href="{@docRoot}google/play-services/reference/com/google/android/gms/auth/GoogleAuthUtil.html#getTokenWithNotification(android.content.Context, java.lang.String, java.lang.String, android.os.Bundle, android.content.Intent)">getTokenWithNotification(Context context, String accountName, String scope, Bundle extras, Intent callback)</a>:
    This method is for use in background services. It displays a notification to the user when authentication errors occur. If a user clicks the notification and then authorizes the app to access the account, the intent is broadcasted. When using this method:
    <li><a href="{@docRoot}reference/com/google/android/gms/auth/GoogleAuthUtil.html#getTokenWithNotification(android.content.Context, java.lang.String, java.lang.String, android.os.Bundle, android.content.Intent)"
    >{@code getTokenWithNotification(Context context, String accountName, String scope, Bundle extras, Intent callback)}</a>:
    This method is for use in background services. It displays a notification to the user
    when authentication errors occur. If a user clicks the notification and then authorizes the
    app to access the account, the intent is broadcasted. When using this method:
    <ul>
     <li>Create a {@link android.content.BroadcastReceiver} that registers the intent and handles it appropriately</li>
     <li>In the app's manifest file, set the <code>android:exported</code> attribute to <code>true</code> for the broadcast receiver</li>
     <li>Ensure that the intent is serializable using the {@link android.content.Intent#toUri toUri(Intent.URI_INTENT_SCHEME)} and
     <li>Create a {@link android.content.BroadcastReceiver} that registers the intent and handles
it appropriately</li>
     <li>In the app's manifest file, set the <a
     href="{@docRoot}guide/topics/manifest/receiver-element.html#exported"><code>android:exported</code></a>
     attribute to <code>true</code> for the broadcast receiver</li>
     <li>Ensure that the intent is serializable using the {@link
android.content.Intent#toUri toUri(Intent.URI_INTENT_SCHEME)} and
    {@link android.content.Intent#parseUri parseUri(intentUri, Intent.URI_INTENT_SCHEME)} methods.</li>
   </ul>
    <li><a href="{@docRoot}google/play-services/reference/com/google/android/gms/auth/GoogleAuthUtil.html#getTokenWithNotification(android.content.Context, java.lang.String, java.lang.String, android.os.Bundle, java.lang.String, android.os.Bundle)">getTokenWithNotification(Context context, String accountName, String scope, Bundle extras, String authority, Bundle syncBundle)</a>: This method is for use in sync adapters. It displays a notification to the user when authentication errors occur. If a user clicks the notification and then authorizes the app to access the account, the sync adapter retries syncing with the information
    <li><a href="{@docRoot}reference/com/google/android/gms/auth/GoogleAuthUtil.html#getTokenWithNotification(android.content.Context, java.lang.String, java.lang.String, android.os.Bundle, java.lang.String, android.os.Bundle)"
    >{@code getTokenWithNotification(Context context, String accountName, String scope, Bundle extras, String authority, Bundle syncBundle)}</a>:
This method is for use in sync adapters. It displays a notification to the user when
authentication errors occur. If a user clicks the notification and then authorizes the
app to access the account, the sync adapter retries syncing with the information
    contained in the <code>syncBundle</code> parameter.</li>
  </ul>
  
   <p>See the sample in <code>&lt;android-sdk&gt;/extras/google-play-services/samples/auth</code> for implementation details.</p>




<h2 id="handle">Handling Exceptions</h2>
<p>
    When requesting an authentication token with
    <a href="{@docRoot}google/play-services/reference/com/google/android/gms/auth/GoogleAuthUtil.html#getToken(android.content.Context, java.lang.String, java.lang.String)">GoogleAuthUtil.getToken()</a>,
    <a href="{@docRoot}reference/com/google/android/gms/auth/GoogleAuthUtil.html#getToken(android.content.Context, java.lang.String, java.lang.String)"
    >{@code GoogleAuthUtil.getToken()}</a>,
    the following exceptions can be thrown:
</p>
<ul>
    <li>
<a href="{@docRoot}google/play-services/reference/com/google/android/gms/auth/UserRecoverableAuthException.html">UserRecoverableAuthException</a>: 
<a href="{@docRoot}reference/com/google/android/gms/auth/UserRecoverableAuthException.html"
>{@code UserRecoverableAuthException}</a>: 
        This exception is thrown when an error occurs that users can resolve, such as not yet granting access to their accounts or if they changed their password.
        This exception class contains a {@link android.app.Activity#getIntent getIntent()} 
        method that you can call to obtain an intent that you can use with
@@ -129,8 +153,10 @@ try {
        callback when this activity returns to take action based on the user's actions.
  </li>
  <li>
<a href="{@docRoot}google/play-services/reference/com/google/android/gms/auth/GooglePlayServicesAvailabilityException.html">GooglePlayServicesAvailabilityException</a>: 
        This exception is a special case of <a href="{@docRoot}google/play-services/reference/com/google/android/gms/auth/UserRecoverableAuthException.html">UserRecoverableAuthException</a>
<a href="{@docRoot}reference/com/google/android/gms/auth/GooglePlayServicesAvailabilityException.html"
>{@code GooglePlayServicesAvailabilityException}</a>: 
        This exception is a special case of <a href="{@docRoot}reference/com/google/android/gms/auth/UserRecoverableAuthException.html"
        >{@code UserRecoverableAuthException}</a>
        and occurs when the actual Google Play services APK is not installed or unavailable.
        This exception provides additional client support to
        handle and fix this issue by providing an error code that describes the exact cause of the problem.
@@ -138,23 +164,31 @@ try {
        an activity to resolve the issue.
    </li>
    <li>
<a href="{@docRoot}google/play-services/reference/com/google/android/gms/auth/GoogleAuthException.html">GoogleAuthException</a>:
<a href="{@docRoot}reference/com/google/android/gms/auth/GoogleAuthException.html">{@code
GoogleAuthException}</a>:
        This exception is thrown when the authorization fails, such as when an invalid scope is 
        specified or if the email address used to authenticate is actually not on the user's 
        device.
    </li>
    <li>
<a href="{@docRoot}google/play-services/reference/com/google/android/gms/auth/UserRecoverableNotifiedException.html">UserRecoverableNotifiedException</a>:
        This exception is thrown when the authorization fails using one of the <code>getTokenWithNotification()</code> methods and if the error
<a href="{@docRoot}reference/com/google/android/gms/auth/UserRecoverableNotifiedException.html"
>{@code UserRecoverableNotifiedException}</a>:
        This exception is thrown when the authorization fails using one of the
<a href="{@docRoot}reference/com/google/android/gms/auth/GoogleAuthUtil.html#getTokenWithNotification(android.content.Context, java.lang.String, java.lang.String, android.os.Bundle)"
      >{@code getTokenWithNotification()}</a> methods and if the error
        is recoverable with a user action.
    </li>
</ul>
<p>
    For more information on how to handle these exceptions and code snippets, see the reference 
    documentation for the 
<a href="{@docRoot}google/play-services/reference/com/google/android/gms/auth/GoogleAuthUtil.html">GoogleAuthUtil</a>
    class.
<a href="{@docRoot}reference/com/google/android/gms/auth/GoogleAuthUtil.html">{@code
GoogleAuthUtil}</a> class.
</p>




<h2 id="use">Using the Token</h2>
<p>
    Once you have successfully obtained a token, you can use it to access Google services.
@@ -192,5 +226,7 @@ if (serverCode == 200) {
    Notice that you must manually invalidate the token if the response from the server
    signifies an authentication error (401). This could mean the authentication token
    being used is invalid for the service's scope or the token may have expired. If this is the 
    case, obtain a new token using <a href="{@docRoot}google/play-services/reference/com/google/android/gms/auth/GoogleAuthUtil.html#getToken(android.content.Context, java.lang.String, java.lang.String)">GoogleAuthUtil.getToken()</a>.
    case, obtain a new token using <a
href="{@docRoot}reference/com/google/android/gms/auth/GoogleAuthUtil.html#getToken(android.content.Context, java.lang.String, java.lang.String)"
>{@code GoogleAuthUtil.getToken()}</a>.
</p>
 No newline at end of file
+9 −5
Original line number Diff line number Diff line
@@ -17,7 +17,7 @@ header.hide=1
  with <b>image overlays</b>, embed <b>one or more maps</b> as fragments,
  and much more.</p>
  <p>The <a
href="{@docRoot}google/play-services/reference/com/google/android/gms/maps/package-summary.html"
href="{@docRoot}reference/com/google/android/gms/maps/package-summary.html"
>Google Maps Android API reference</a> is available here on developer.android.com, but for more
information about adding maps to your app, visit:</p>
  <p><a class="external-link"
@@ -66,21 +66,25 @@ href="https://developers.google.com/maps/documentation/android/">developers.goog
    </p>
            
    <h4>2. Run the sample</h4>
    
    <p>Once you've installed the Google Play services package, the Google Maps sample is located in
      <code>&lt;android-sdk&gt;/extras/google-play-services/samples/maps</code> and shows you
      how to use the major components of the Google Maps Android APIs.
    </p>
    
    <h4>3. Read the documentation</h4>
    
    <p>Read the <a href="https://devsite.googleplex.com/maps/terms">Google Maps
    API Terms of Service</a>.</p>
    
    <p>For quick access while developing your Android apps, the
      <a href="{@docRoot}google/play-services/reference/com/google/android/gms/maps/package-summary.html">Google Maps
      <a href="{@docRoot}reference/com/google/android/gms/maps/package-summary.html">Google Maps
      Android API reference</a> is available here on developer.android.com.</p>
    <p>Extended documentation for the Google Maps Android APIs is provided with the rest of the

    <p>Detailed documentation for the Google Maps Android APIs is available with the rest of the
    Google Maps developer documents at <a class="external-link"
    href="https://developers.google.com/maps/documentation/android/">developers.google.com/maps</a>.
    </p>
    <p>Also read the <a href="https://devsite.googleplex.com/maps/terms">Google Maps
    API Terms of Service</a>.</p>
  </div>

</div>
 No newline at end of file
+7 −5
Original line number Diff line number Diff line
@@ -18,7 +18,7 @@ header.hide=1
  and allow users to <b>share rich content</b> with Google+.</p>
  
  <p>The <a
href="{@docRoot}google/play-services/reference/com/google/android/gms/plus/package-summary.html"
href="{@docRoot}reference/com/google/android/gms/plus/package-summary.html"
>Google+ Android API reference</a> is available here on developer.android.com, but for more
information about integrating Google+, visit:</p>
<p><a class="external-link"
@@ -65,13 +65,15 @@ href="https://developers.google.com/+/mobile/android/">developers.google.com/+</
    </p>
    
    <h4>3. Read the documentation</h4>
    <p>Read the <a href="https://developers.google.com/+/terms">Google+ Platform
    Terms of Service</a>.</p>
 
    <p>For quick access while developing your Android apps, the
    <a href="{@docRoot}google/play-services/reference/com/google/android/gms/plus/package-summary.html">Google+
    <a href="{@docRoot}reference/com/google/android/gms/plus/package-summary.html">Google+
    API reference</a> is available here on developer.android.com.</p>
    <p>Extended documentation for the Google+ Android APIs is provided with the rest of the
 
    <p>Detailed documentation for the Google+ Android APIs is available with the rest of the
    Google+ developer documents at <a class="external-link"
    href="https://developers.google.com/+/mobile/android/">developers.google.com/+</a>.</p>
    <p>Also read the <a href="https://developers.google.com/+/terms">Google+ Platform
    Terms of Service</a>.</p>
  </div>
</div>
 No newline at end of file
Loading