하나의 중앙 앱에 여러 가지 앱과 내 AccountManager 파일이 있습니다. 해당 중앙 애플 리케이션에서 AccountManager.AddAccount()를 사용할 수 있지만 다른 응용 프로그램에서 해당 메서드를 사용하려고하면 AuthenticatorActivity가 시작되지 않습니다. 디버그하여 AddAccount의 코드가 모두 실행되고 있지만 액티비티가 실행되지 않는다는 것을 알 수 있습니다. 내가 AddAccount이 동일 호출하는 코드, 그래서 내 애플 리케이션의 모두 같은 시작 화면을 사용다른 앱에서 내 AccountAuthenticatorActivity가 실행되지 않는 이유는 무엇입니까?
public override Bundle AddAccount(AccountAuthenticatorResponse response, string accountType, string authTokenType, string[] requiredFeatures, Bundle options)
{
var intent = new Intent(_context, typeof(MyAccountAuthenticatorActivity));
intent.PutExtra(MyAccountAuthenticatorActivity.ARG_ACCOUNT_TYPE, accountType);
intent.PutExtra(MyAccountAuthenticatorActivity.ARG_AUTH_TYPE, authTokenType);
intent.PutExtra(MyAccountAuthenticatorActivity.ARG_IS_ADDING_NEW_ACCOUNT, true);
intent.PutExtra(AccountManager.KeyAccountAuthenticatorResponse, response);
var bundle = new Bundle();
bundle.PutParcelable(AccountManager.KeyIntent, intent);
return bundle;
}
:
여기 내 AddAccount 방법입니다.
_accountManager = AccountManager.Get(this);
var accounts = _accountManager.GetAccountsByType(AccountKeys.ACCOUNT_TYPE);
//automatically add new account if no users on device yet
if (accounts.Length == 0)
{
_accountManager.AddAccount(AccountKeys.ACCOUNT_TYPE, AccountKeys.AUTH_TYPE, null, null, this, null, null);
CheckIfFirstRun();
Finish();
}
MyAccountAuthenticatorActivity는 하나의 앱에 있습니다. 보시다시피 올바른 활동 컨텍스트를 AddAccount로 보내지 만 StartActivity()는 해당 코드가 인증 자 파일을 소유 한 응용 프로그램에서 실행될 때만 호출됩니다.
내 다른 앱이 MyAccountAuthenticatorActivity를 열 수 있도록하기 위해 내가 놓친 것은 무엇입니까? AddAccount를 호출 할 때 콜백을 null로 설정하는 것이 가능할 수 있습니까? 자바 예제 중 아무도 이것을 가지고 있지 않기 때문에 콜백을 사용하는 방법을 완전히 이해하지 못하기 때문에이 방법을 다른 방법으로 이해할 수는 없습니다.
는 또한과 같이 내 다른 응용 프로그램의 매니페스트에 MyAccountAuthenticatorActivity를 추가하는 시도 :<activity android:name="com.redacted.authenticator.MyAccountAuthenticatorActivity" />
을하지만 아무것도 변경되지 않습니다. 나는 다른 응용 프로그램이 AuthenticatorService를보고 있다는 것을 알고, 그들은 활동을 시작하지 않을 것입니다.