카테고리 보관물: 쓸모있는 정보

안드로이드 장치에서 이메일 주소 읽어오기

안드로이드 앱에서 사용자의 이메일 주소를 읽어오는 방법입니다.

회원가입시에 미리 입력 시켜둬서 사용자 편의성을 높이는데 사용할 수 있으며 악용하진 말아야할 것 입니다.

 

1. AccountManager 사용하기 (API 5 이상)

AccountManager를 이용하면  기기에 등록된 모든 계정이름을 불러올 수 있고 계정이름이 이메일인 경우가 많기 때문에 활용할 수 있습니다.

Pattern emailPattern = Patterns.EMAIL_ADDRESS; // API level 8+
Account[] accounts = AccountManager.get(context).getAccounts();
for (Account account : accounts) {
    if (emailPattern.matcher(account.name).matches()) {
        String possibleEmail = account.name;
        ...
    }
}

AccountManager를 사용하려면 GET_ACCOUNTS 권한이 필요하니 AndroidManifest.xml에 권한을 추가해둬야 합니다.

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

 

2. ContactsContract.Profile 이용하기 (API 14 이상)

ICS부터는 사용자의 프로필에 접근하여 이메일을 가져올 수 있습니다.

public class ExampleActivity extends Activity implements LoaderManager.LoaderCallbacks<Cursor> {
    public void onCreate(Bundle savedInstanceState) {
        super.onCreate(savedInstanceState);
        setContentView(R.layout.activity_main);
        getLoaderManager().initLoader(0, null, this);
    }
 
    @Override
    public Loader<Cursor> onCreateLoader(int id, Bundle arguments) {
        return new CursorLoader(this,
                // Retrieve data rows for the device user's 'profile' contact.
                Uri.withAppendedPath(
                        ContactsContract.Profile.CONTENT_URI,
                        ContactsContract.Contacts.Data.CONTENT_DIRECTORY),
                ProfileQuery.PROJECTION,
 
                // Select only email addresses.
                ContactsContract.Contacts.Data.MIMETYPE + " = ?",
                new String[]{ContactsContract.CommonDataKinds.Email.CONTENT_ITEM_TYPE},
 
                // Show primary email addresses first. Note that there won't be
                // a primary email address if the user hasn't specified one.
                ContactsContract.Contacts.Data.IS_PRIMARY + " DESC");
    }
 
    @Override
    public void onLoadFinished(Loader<Cursor> cursorLoader, Cursor cursor) {
        List<String> emails = new ArrayList<String>();
        cursor.moveToFirst();
        while (!cursor.isAfterLast()) {
            emails.add(cursor.getString(ProfileQuery.ADDRESS));
            // Potentially filter on ProfileQuery.IS_PRIMARY
            cursor.moveToNext();
        }
 
        ...
    }
 
    @Override
    public void onLoaderReset(Loader<Cursor> cursorLoader) {
    }
 
    private interface ProfileQuery {
        String[] PROJECTION = {
                ContactsContract.CommonDataKinds.Email.ADDRESS,
                ContactsContract.CommonDataKinds.Email.IS_PRIMARY,
        };
 
        int ADDRESS = 0;
        int IS_PRIMARY = 1;
    }
}

READ_PROFILEREAD_CONTACTS의 두 가지 권한이 필요합니다.

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

참조 : How to get the Android device’s primary e-mail address

다중모니터에서 OSX용 Firefox 레티나 화면 옵션 활성화하기

파이어폭스(Firefox) 18버전 이상에서 레티나(Retina) 화면을 지원하게 되었는데 레티나 맥북 프로에 외부 모니터를 연결시 버그가 있어 레티나 출력이 비활성화되도록 변경되었습니다.

이 버그는 파이어폭스 버전 20에서 수정될 예정이라고 하는데 버그가 있더라도 사용하고자 하는 경우에는 레티나 옵션을 활성화하여서 사용하면 됩니다.

1. ‘about:config‘ 접속

firefox

 

2. gfx.hidpi.enabled 검색

search

 

3. 나타난 값을 더블클릭하여 값을 ‘2‘로 변경

4. 레티나 모드로 사용가능!

파이어폭스 20에서 수정된다고 하니.. 언제쯤 나올런지 ㅠ

윈도우7 설치 USB 만들기

윈도우7 설치용 부팅 USB 만들기가 굉장히 쉽더군요.

마이크로소프트가 Windows 7 USB/DVD Download Tool을 지원하기 때문인데요,

먼저 저 툴을 다운로드한 후에 실행하면 설치가 됩니다.

그리고 윈도우7 ISO를 미리 가지고 있어야합니다.

 

1select
1. 설치된 ‘Windows 7 USB/DVD Download Tool’을 실행하게되면 윈도우7 ISO 위치를 지정하라고 합니다.
2. 윈도우7 ISO 위치를 지정합니다.
2.USB 장치에 할 것인지, DVD에 할 것인지 묻습니다. USB device를 선택합시다.
3. USB 장치를 지정합니다.
3. USB 장치를 지정합니다.
4. USB장치에 복사가 진행됩니다.
4. USB장치에 복사가 진행됩니다.

 

위의 간단한 과정을 진행하면 윈도우7 설치 USB가 완성됩니다!

설치를 위해서는 설치할 컴퓨터가 USB 부팅을 지원해야하고,
BIOS(CMOS) 설정에서 첫번째 부팅 장치를 USB 장치로 하도록 설정을 한 후에 USB를 연결하고 컴퓨터를 부팅시키면 설치 과정이 진행됩니다.