【问题标题】:Get password from android account从安卓账户获取密码
【发布时间】:2011-05-10 18:09:22
【问题描述】:

我从 Android API 中注意到,他们有这个方法 getPassword(Account account)

accountManager = AccountManager.get(this);

Account[] allGoogleAccounts = accountManager.getAccountsByType("com.google");

for (Account account : allGoogleAccounts) 

{
  System.out.println(accountManager.getPassword(account));
}

但我有这个错误:

11-16 10:49:08.986: WARN/System.err(5732): java.lang.SecurityException: caller uid 10039 is different than the authenticator's uid
11-16 10:49:09.038: WARN/System.err(5732):     at android.os.Parcel.readException(Parcel.java:1247)
11-16 10:49:09.038: WARN/System.err(5732):     at android.os.Parcel.readException(Parcel.java:1235)
11-16 10:49:09.045: WARN/System.err(5732):     at android.accounts.IAccountManager$Stub$Proxy.getPassword(IAccountManager.java:415)
11-16 10:49:09.087: WARN/System.err(5732):     at android.accounts.AccountManager.getPassword(AccountManager.java:277)
11-16 10:49:09.087: WARN/System.err(5732):     at com.test.account.onCreate(account.java:30)
11-16 10:49:09.107: WARN/System.err(5732):     at android.app.Instrumentation.callActivityOnCreate(Instrumentation.java:1047)
11-16 10:49:09.107: WARN/System.err(5732):     at android.app.ActivityThread.performLaunchActivity(ActivityThread.java:2627)
11-16 10:49:09.125: WARN/System.err(5732):     at android.app.ActivityThread.handleLaunchActivity(ActivityThread.java:2679)
11-16 10:49:09.125: WARN/System.err(5732):     at android.app.ActivityThread.access$2300(ActivityThread.java:125)
11-16 10:49:09.134: WARN/System.err(5732):     at android.app.ActivityThread$H.handleMessage(ActivityThread.java:2033)
11-16 10:49:09.156: WARN/System.err(5732):     at android.os.Handler.dispatchMessage(Handler.java:99)
11-16 10:49:09.156: WARN/System.err(5732):     at android.os.Looper.loop(Looper.java:123)
11-16 10:49:09.166: WARN/System.err(5732):     at android.app.ActivityThread.main(ActivityThread.java:4627)
11-16 10:49:09.175: WARN/System.err(5732):     at java.lang.reflect.Method.invokeNative(Native Method)
11-16 10:49:09.185: WARN/System.err(5732):     at java.lang.reflect.Method.invoke(Method.java:521)
11-16 10:49:09.185: WARN/System.err(5732):     at com.android.internal.os.ZygoteInit$MethodAndArgsCaller.run(ZygoteInit.java:868)
11-16 10:49:09.195: WARN/System.err(5732):     at com.android.internal.os.ZygoteInit.main(ZygoteInit.java:626)
11-16 10:49:09.206: WARN/System.err(5732):     at dalvik.system.NativeStart.main(Native Method)

谁能告诉我我的错误?

【问题讨论】:

  • 这个问题你运气好吗?

标签: android email passwords


【解决方案1】:

来自AccountManager.getPassword()

getPassword: 该方法要求调用者持有AUTHENTICATE_ACCOUNTS的权限,并且与账户的验证者拥有相同的UID

在我看来,只有在您的应用是在帐户管理器中创建帐户的应用时,您才能获得密码(虽然可能是错误的)

【讨论】:

    【解决方案2】:

    如果您(您的应用程序)在帐户管理器中编写帐户,那么只有您(您的应用程序)可以获得密码,这是因为应用程序上的安全性可以获取他用于在其他应用程序中同步的用户的密码

    您可以获得由您的进程创建的帐户的密码UID每个进程一旦在设备上运行并继续拥有相同的UID UID 曾经

    【讨论】:

      猜你喜欢
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 2015-03-21
      • 2011-08-19
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      相关资源
      最近更新 更多