Таким образом, мы будем считать, что мы есть кнопка входа в систему, которая запускает метод, который первым проверяет подлинность нас и, конечно, дают нам необходимы данные login.setOnClickListener(view -> syncGoogleAccount());
и метод, который будет регистрировать нас, мы будем первый цикл через наши приложения для нашего адреса электронной почты, используя этот метод:
public String findGmailAccount() {
AccountManager am = AccountManager.get(context);
Account[] accounts = am.getAccounts();
if (accounts.length > 0) {
for (int j = 0; j < accounts.length; j++) {
Account account = accounts[j];
if (account.type != null && account.type.equals("com.google")) {
String email = account.name;
return email;
} else
{
return null;
}
}
}
return null;
}
public void syncGoogleAccount() {
if (isNetworkAvailable()) {
String accountarrs = findGmailAccount();
if (accountarrs != null) {
//you can set here account for login
getTask(register.this, accountarrs, SCOPE).execute();
} else {
Toast.makeText(mContext, "No Google Account Sync!",
Toast.LENGTH_SHORT).show();
}
} else {
Toast.makeText(mContext, "No Network Service!",
Toast.LENGTH_SHORT).show();
}
}
важно проверить наличие подключения, прежде чем делать какие-либо сетевые операции, поэтому мы сначала проверяем для подключения.
public boolean isNetworkAvailable() {
ConnectivityManager cm = (ConnectivityManager) mContext
.getSystemService(Context.CONNECTIVITY_SERVICE);
NetworkInfo networkInfo = cm.getActiveNetworkInfo();
if (networkInfo != null && networkInfo.isConnected()) {
Log.e("Network Testing", "***Available***");
return true;
}
Log.e("Network Testing", "***Not Available***");
return false;
}
, а затем, если мы вошли в системе мы называем наш метод информации геттера, который получает нашу информацию с Img URL включены
public static void getUserInformationFromAccount() {
try {
System.out.println("On Home Page***\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n"
+ AbstractGetNameTask.GOOGLE_USER_DATA);
JSONObject profileData = new JSONObject(
AbstractGetNameTask.GOOGLE_USER_DATA);
if (profileData.has("picture")) {
String userImageUrl = profileData.getString("picture");
new GetImageFromUrl().execute(userImageUrl);
}
if (profileData.has("name")) {
myname = profileData.getString("name");
userDetails.setName(myname);
}
if (profileData.has("gender")) {
gender = profileData.getString("gender");
}
if (profileData.has("birthday")) {
birthday = profileData.getString("birthday");
}
} catch (JSONException e) {
// TODO Auto-generated catch block
e.printStackTrace();
}
нашей ссылкой на изображение асинхр который загружает наше изображения/изображение профиля пользователя
public static class GetImageFromUrl extends AsyncTask<String, Void, Bitmap> {
@Override
protected Bitmap doInBackground(String... urls) {
Bitmap map = null;
for (String url : urls) {
map = downloadImage(url);
}
return map;
}
// Sets the Bitmap returned by doInBackground
@Override
protected void onPostExecute(Bitmap result) {
profilepic.setImageBitmap(result);
CommonMethods.saveUserImageToSd(result, Constant.GOOGLE_IMAGE, Constant.DISPLAY_IMAGE);
}
// Creates Bitmap from InputStream and returns it
private Bitmap downloadImage(String url) {
Bitmap bitmap = null;
InputStream stream = null;
BitmapFactory.Options bmOptions = new BitmapFactory.Options();
bmOptions.inSampleSize = 1;
try {
stream = getHttpConnection(url);
bitmap = BitmapFactory.decodeStream(stream, null, bmOptions);
stream.close();
} catch (IOException e1) {
e1.printStackTrace();
}
return bitmap;
}
// Makes HttpURLConnection and returns InputStream
private InputStream getHttpConnection(String urlString)
throws IOException {
InputStream stream = null;
URL url = new URL(urlString);
URLConnection connection = url.openConnection();
try {
HttpURLConnection httpConnection = (HttpURLConnection) connection;
httpConnection.setRequestMethod("GET");
httpConnection.connect();
if (httpConnection.getResponseCode() == HttpURLConnection.HTTP_OK) {
stream = httpConnection.getInputStream();
}
} catch (Exception ex) {
ex.printStackTrace();
}
return stream;
}
}
Я непосредственно загружаю изображение, используя URL-адрес, указанный Google+ при подключении. – theblitz
Я сделал некоторые изменения в своем ответе. По этому я надеюсь, что это поможет вам. –