page.title=Google+ Platform for Android
page.tags=authentication,signin,social
header.hide=1

@jd:body


<div class="landing-banner">
        
<div class="col-6">
  <img src="{@docRoot}images/google/gps-googleplus.png" alt="">
</div>
<div class="col-6">

  <h1 itemprop="name" style="margin-bottom:0;">Google+ Platform for Android</h1>
  <p itemprop="description">The Google+ platform for Android lets you authenticate a user
  with the same credentials they use on Google every day. Once a user signs in with Google,
  you can create more engaging experiences and drive usage of your app.</p>
  
  <p>Explore the <a href="{@docRoot}reference/com/google/android/gms/plus/package-summary.html"
>Google+ Android API reference</a> or visit <a class="external-link"
href="https://developers.google.com/+/mobile/android/">developers.google.com/+</a> for more
information about integrating Google+ into your app.</p>
</div>
</div>

<div class="landing-docs">
  <div class="col-6 normal-links">
    <h3 style="clear:left">Key Developer Features</h3>

      <h4>Trusted authentication</h4>
      <p>Google+ Sign-In is a simple, trusted, and secure way to let people sign in
      to your app with their Google credentials and bring along their Google+ info.
      <br />
      <a href="https://developers.google.com/+/mobile/android/sign-in"
      class="external-link">Add sign-in</a>.</p>

      <h4>Access the profile and social graph</h4>
      <p>Once users have signed in with Google, your app can welcome them by name,
      display their picture, connect them with friends, and lots more.
      <br />
      <a href="https://developers.google.com/+/mobile/android/people"
      class="external-link">Access the social graph</a>.</p>
       
      <h4>Stand out in the stream</h4>
      <p>Interactive posts is a rich way of sharing to Google+. It lets users prompt friends
      to take specific actions in your app from a Google+ post, like "listen," "RSVP," "check-in,"
      and over 100 more actions. <br />
      <a class="external-link"
      href="https://developers.google.com/+/mobile/android/share">Post interactive content</a>.</p>

      <h4>Recommend content</h4>
      <p>Add a native +1 button so users can recommend content from your app. These endorsements
      can give your app more credibility and help it grow faster.  <br />
      <a class="external-link"
      href="https://developers.google.com/+/mobile/android/recommend">Add the +1 button</a>.</p>
  </div>


  <div class="col-6 normal-links">
    <h3 style="clear:left">Getting Started</h3>
    <h4>1. Get the Google Play services SDK</h4>
    <p>The Google+ Android APIs are part of the Google Play services platform.</p>
    <p>To get started, <a href="{@docRoot}google/play-services/setup.html">set up
      the Google Play services SDK</a>.
    </p>
            
    <h4>2. Run the sample</h4>
    <p>Once you've installed the Google Play services package, you can run the Google+ sample located in
    <code>&lt;android-sdk&gt;/extras/google-play-services/samples/plus</code>. However, before
    you can run the sample, you need to register your app in the Google APIs Console.</p>
    <p>See <a class="external-link"
      href="https://developers.google.com/+/mobile/android/getting-started">Getting Started with
      the Google+ Platform for Android</a> for more information about how to get the sample up and 
      running.
    </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}reference/com/google/android/gms/plus/package-summary.html">Google+
    API reference</a> is available here on developer.android.com.</p>
 
    <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>
  </div>
</div>
