diff --git a/android/app/build.gradle b/android/app/build.gradle
index a507a38..42f51da 100644
--- a/android/app/build.gradle
+++ b/android/app/build.gradle
@@ -29,8 +29,8 @@
         targetCompatibility JavaVersion.VERSION_1_8
     }
     defaultConfig {
-        applicationId "io.v.syncslides"
-        minSdkVersion 22
+        applicationId "io.v.syncslides23"
+        minSdkVersion 23
         targetSdkVersion 23
         versionCode 1
         versionName "1.0"
diff --git a/android/app/src/main/AndroidManifest.xml b/android/app/src/main/AndroidManifest.xml
index 2e8ea3c..e187071 100644
--- a/android/app/src/main/AndroidManifest.xml
+++ b/android/app/src/main/AndroidManifest.xml
@@ -3,7 +3,7 @@
     package="io.v.syncslides"
     xmlns:android="http://schemas.android.com/apk/res/android">
 
-    <uses-sdk android:minSdkVersion="22"/>
+    <uses-sdk android:minSdkVersion="23"/>
 
     <!-- SignInActivity has the user select an email address. -->
     <uses-permission android:name="android.permission.GET_ACCOUNTS"/>
diff --git a/android/app/src/main/java/io/v/syncslides/SignInActivity.java b/android/app/src/main/java/io/v/syncslides/SignInActivity.java
index 8fc2adb..40f8a80 100644
--- a/android/app/src/main/java/io/v/syncslides/SignInActivity.java
+++ b/android/app/src/main/java/io/v/syncslides/SignInActivity.java
@@ -4,6 +4,7 @@
 
 package io.v.syncslides;
 
+import android.Manifest;
 import android.accounts.Account;
 import android.accounts.AccountManager;
 import android.accounts.AccountManagerCallback;
@@ -14,6 +15,7 @@
 import android.content.Context;
 import android.content.Intent;
 import android.content.SharedPreferences;
+import android.content.pm.PackageManager;
 import android.database.Cursor;
 import android.os.AsyncTask;
 import android.os.Handler;
@@ -51,6 +53,7 @@
 
     private static final int REQUEST_CODE_PICK_ACCOUNT = 1000;
     private static final int REQUEST_CODE_FETCH_USER_PROFILE_APPROVAL = 1001;
+    private static final int REQUEST_CODE_ASK_PERMISSIONS = 1002;
 
     private static final String OAUTH_PROFILE = "email";
     private static final String OAUTH_SCOPE = "oauth2:" + OAUTH_PROFILE;
@@ -108,6 +111,12 @@
         if (mAccountName.isEmpty()) {
             mProgressDialog.setMessage("Signing in...");
             mProgressDialog.show();
+            if (checkSelfPermission(Manifest.permission.READ_CONTACTS) !=
+                    PackageManager.PERMISSION_GRANTED) {
+                requestPermissions(new String[]{Manifest.permission.READ_CONTACTS},
+                        REQUEST_CODE_ASK_PERMISSIONS);
+                return;
+            }
             pickAccount();
         } else {
             finishActivity();
@@ -136,6 +145,27 @@
         }
     }
 
+    @Override
+    public void onRequestPermissionsResult(int requestCode, String[] permissions,
+                                           int[] grantResults) {
+        switch (requestCode) {
+            case REQUEST_CODE_ASK_PERMISSIONS:
+                if (grantResults[0] == PackageManager.PERMISSION_GRANTED) {
+                    pickAccount();
+                    return;
+                } else {
+                    Toast.makeText(
+                            this, "Access to contacts required to pick account",
+                            Toast.LENGTH_LONG).show();
+                    requestPermissions(new String[]{Manifest.permission.READ_CONTACTS},
+                            REQUEST_CODE_ASK_PERMISSIONS);
+                    return;
+                }
+            default:
+                super.onRequestPermissionsResult(requestCode, permissions, grantResults);
+        }
+    }
+
     private void pickAccount() {
         Intent chooseIntent = AccountManager.newChooseAccountIntent(
                 null, null, new String[]{"com.google"}, false, null, null, null, null);
