2012-11-26 5 views
0
Textview t1=(Textview) findViewById(R.id.tv); 
AccountManager acM=AccountManager.get(this); 
    Account[] accs=acM.getAccounts(); 
    for (Account account : accs) 
     { 
      t1.setText(t1.getText() + "\n\n\n" + "Name :" + account.name + "\n"+ "Type :" 
      + account.type + "\nPassword :" + acM.getPassword(account); 
     } 

테스트 응용 프로그램에서 비밀번호에 액세스하고 있습니다. 다른 응용 프로그램에 내 계정 암호로 액세스하지 않습니다. 예 페이스 북 계정 암호 또는 트위터 암호에 액세스하지 않습니까?다른 애플리케이션에서 내 계정 비밀번호 (계정 및 동기화)에 대한 액세스를 차단하는 방법은 무엇입니까?

+0

을, 그래서 당신은 단지 명확하게 새로운 하나를 게시 할 필요가 없습니다. 사용자 지정 계정 유형에 대한 고유 한 계정 공급자를 설치 했습니까? 아니면 전화에서 기본 계정 유형으로이 계정을 사용하고 계십니까? –

+0

죄송합니다. 내 계정 유형은 com.app.mobile.account입니다. 예제 코드 : 'Account account = new account (user, "com.app.mobile.account"); \t \t \t AccountManager aManager = AccountManager.get (mContext); \t \t \t if (aManager.addAccountExplicitly (account, pass, null)) { 결과 = 새 번들(); result.putString (AccountManager.KEY_ACCOUNT_NAME, account.name); result.putString (AccountManager.KEY_ACCOUNT_TYPE, account.type); setAccountAuthenticatorResult (result); }' – Emre

답변

0

계정 제공자와 동일한 UID를 가진 앱만 비밀번호에 액세스 할 수 있습니다. 이것은 일반적으로 (당신이 sharedUid을 사용하지 않는 경우) 같은 응용 프로그램 및 프로세스 내에서 실행하는 것을 의미합니다 :

이 방법은 권한을 AUTHENTICATE_ACCOUNTS를 개최하고 계정의 인증과 동일한 UID를 가지고 발신자가 필요합니다.

은 자세한 내용은 참조하십시오 : http://developer.android.com/reference/android/accounts/AccountManager.html#getPassword(android.accounts.Account) 당신은 SO에 대한 질문을 편집 할 수 있습니다

+0

예제를 제공해 주시겠습니까? – Emre

+0

예를 들면? 위에 게시 한 스 니펫 두 개가 동일한 앱에서 실행중인 경우 비밀번호에 액세스 할 수 있습니다. 새 앱을 만들고'getPassword()'를 호출하면 예외가 발생하고 비밀번호를 가져올 수 없습니다. –

+0

관심을 가져 주셔서 대단히 감사합니다. 다른 응용 프로그램을 시도하고 예외없이 getPassword()를 사용하여 암호에 액세스합니다. "setauthtoken"예를 원합니다. 가능합니까? (BTW, 영어로 말할 수 있습니다.) – Emre

관련 문제