Get Account Details using AccountManager in Android

AccountManage is used to manage the online Accounts like Facebook,Google,etc.

AccountManager is used,

  • Manage the available accounts.
  • Add the new account.
  • Authendicate the accouts.
You can download source code here.

Create Android Project with name as AccountManagerDemo with package name "com.etr.accountmanagerdemo". Create Activity with name as AccountManagerActivity. This is the code for AccountManagerActivity.

package com.etr.accountmanagerdemo;

import android.accounts.Account;
import android.accounts.AccountManager;
import android.app.Activity;
import android.os.Bundle;
import android.util.Log;
import android.view.Menu;
import android.view.View;
import android.view.View.OnClickListener;
import android.widget.Button;
import android.widget.EditText;
import android.widget.Toast;

public class AccountManagerActivity extends Activity {
Button details;
EditText packageName;

@Override
protected void onCreate(Bundle savedInstanceState) {

try {

super.onCreate(savedInstanceState);
setContentView(R.layout.activity_account_manager);

details = (Button) findViewById(R.id.details);
packageName = (EditText) findViewById(R.id.editText1);

details.setOnClickListener(new OnClickListener() {

@Override
public void onClick(View arg0) {
String name = packageName.getText().toString().trim();
if (name.length() > 0) {

Account[] gmailAccounts = AccountManager.get(
AccountManagerActivity.this).getAccountsByType(
name);

for (Account accounts : gmailAccounts) {

String gmail = accounts.toString();
Toast.makeText(AccountManagerActivity.this, gmail,
Toast.LENGTH_LONG).show();

}

} else {
Toast.makeText(AccountManagerActivity.this,
"Enter package name", Toast.LENGTH_LONG).show();
}

}
});

} catch (Exception e) {
Log.v("Exception", Log.getStackTraceString(e));
}
}

@Override
public boolean onCreateOptionsMenu(Menu menu) {
// Inflate the menu; this adds items to the action bar if it is present.
getMenuInflater().inflate(R.menu.account_manager, menu);
return true;
}

}

This is code for activity_account_manager.xml

<RelativeLayout xmlns:android="http://schemas.android.com/apk/res/android"
    xmlns:tools="http://schemas.android.com/tools"
    android:layout_width="match_parent"
    android:layout_height="match_parent"
    android:paddingBottom="@dimen/activity_vertical_margin"
    android:paddingLeft="@dimen/activity_horizontal_margin"
    android:paddingRight="@dimen/activity_horizontal_margin"
    android:paddingTop="@dimen/activity_vertical_margin"
    tools:context=".AccountManagerActivity" >

    <Button
        android:id="@+id/details"
        android:layout_width="wrap_content"
        android:layout_height="wrap_content"
        android:layout_alignParentTop="true"
        android:layout_centerHorizontal="true"
        android:layout_marginTop="169dp"
        android:text="Get Details" />

    <EditText
        android:id="@+id/editText1"
        android:layout_width="wrap_content"
        android:layout_height="wrap_content"
        android:layout_alignParentTop="true"
        android:layout_centerHorizontal="true"
        android:layout_marginTop="86dp"
        android:ems="10"
        android:hint="Ex:com.google"
        android:inputType="text"
        android:paddingLeft="15dp" />

</RelativeLayout>

Add below permission to AndroidManifest.xml

<uses-permission android:name="android.permission.GET_ACCOUNTS"/>




Comments

Popular posts from this blog

SQLiteDatabase With Multiple Tables

Programmatically turn ON/OFF WiFi on Android device

Android Service and IntentService