2014-11-28 5 views
0

무료 버전으로 제공되는 앱을 상속했으며, Pro 월간 구독은 인앱 상품을 통해 구입합니다. Pro 상태 (간단한 문자열 "pro_status")는 AccountManager (패키지 android.accounts) 안에 저장됩니다.AccountManager가 앱 상태 데이터를 저장하는 것이 얼마나 안전합니까 (Pro 상태와 같은)?

//AccountManager initiated 
AccountManager mAccountManager = AccountManager.get(this); 
//fetch accounts which correspond to our package name 
Account[] accounts = mAccountManager.getAccountsByType(getString(R.string.account_type)); 
//save Pro status inside the AccountManager 
mAccountManager.setUserData(mAccount, "is_pro", "" + info.isPro()); 

응용, 그것은 무작위로 프로 상태를 잊어 버린 이상한 버그 앓고 중 앱을 닫거나 일 동안 때.

Pro 상태를 저장하는 좋은 방법입니까? AccountManager이 앱이 Pro 상태에 대한 아이디어를 잃어 버리는 이유가 될 수 있습니까?

나는 일반적으로 데이터베이스 또는 SharedPreferences을 사용하여 데이터를 저장하며 (원격 API에 저장하는 것 외에) 동일한 방식으로 그의 앱을 사용한 사람의 도움이 필요합니다.

답변

1

일반적으로 "프로"설정으로 재생되는 사람들은 뿌리가있는 기기가있는 사람들입니다. 어쨌든 계정 관리자에 저장된 데이터는 이러한 사용자에게 표시됩니다.

이러한 사용 사례의 경우 계정 관리자조차 안전하지 않습니다. 다른 응용 프로그램 (다른 UID 사용)은이 데이터에 액세스 할 수 없습니다.

사용자는 설정에서 계정을 삭제할 수 있으므로 설정을 삭제할 수 있습니다.

제 조언은이 정보를 암호화 된 형태로 공유 된 기본 설정에 저장하겠습니까 ??

0

모든 전화에는 계정과 관련된 정보를 저장하는 특정 사용자 데이터베이스가 있습니다.

Pro 상태를 저장하는 좋은 방법입니까?

내가 줄 수 있지만 당신이

은 수정할 수 관련 질문에 대한 답변 것을 대답 할 수없는 ?

There are 2 ways of accessing this data, viz 
  1. 사용자가 명시 적으로 특정 계정에 대한 계정 정보를 읽는 응용 프로그램에 권한을 부여. 이 계정의 세부 정보에 액세스 할 수있는이 앱 목록 은 PID를 기반으로 저장되며 다른 앱에서는 같을 수 없습니다. 확인 setUserDataAUTHENTICATE_ACCOUNTS 권한

  2. 이 데이터베이스는 루팅 된 장치에서 액세스 (및 수정) 할 수 있습니다.

는 사용자가 수동으로이 데이터를 삭제할 수 있습니까?

-Yes, 그는 기기 자체에서 계정을 삭제할 수 있습니다. 이는 기기이기 때문에 계정 세부 정보도 수정할 수 있습니다.

제가 생각하기에 Acccount Manager API는 매우 까다 롭습니다. 중앙 집중식 데이터베이스에 사용자 계정 세부 정보를 저장하는 방식으로 사용되지 않으면 코드를 손상시킬 수있는 변경이 자주 발생합니다.

this question 의 접근 방식과 의견 (대답이 아닌)을 조사해야합니다. 공유 환경 설정 접근 방식에도 동의합니다.