마켓 라이센스를 적용했는데 개발자 계정임에도 마켓에 안올리면 applicationError()가 나오고
마켓에 apk를 업로드 하면 라이센스 테스트 응답과는 상관없이 어떤계정이든 무조건 allow()가 되버립니다.
이거 어떻게 해야할까요? 어제부터 계속 막히네요;; 아래는 마켓라이센스 검증 코드입니다.
import android.app.*;
import android.content.*;
import android.os.*;
import android.provider.Settings.*;
import android.telephony.*;
import android.util.*;
import com.android.vending.licensing.*;
import com.android.vending.licensing.LicenseCheckerCallback.*;
public class Inzeong_goo extends Activity {
private static final String BASE64_PUBLIC_KEY = "공개키는 보안상안쓰겠습니다.";
// 20개의 랜덤한 byte
private static final byte[] SALT = new byte[] {
-46, 65, 30, -128, -103, -57, 74, -64, 51, 88, -95, -45, 77, -117, -36, -113, -11, 32, -64,
89
};
private LicenseCheckerCallback mLicenseCheckerCallback;
private LicenseChecker mChecker;
public void onCreate(Bundle savedInstanceState) {
super.onCreate(savedInstanceState);
setContentView(R.layout.inzeong);
// LicenseCheckerCallback 초기화
mLicenseCheckerCallback = new MyLicenseCheckerCallback();
// 디바이스 아이디를 얻기 위한 루틴
String deviceId = Secure.getString(getContentResolver(), Secure.ANDROID_ID);
// LicenseChecker 초기화
mChecker = new LicenseChecker(
this, new ServerManagedPolicy(this,
new AESObfuscator(SALT, getPackageName(), deviceId)),
BASE64_PUBLIC_KEY);
// License Validation 실행
mChecker.checkAccess(mLicenseCheckerCallback);
}
void cancel() {
finish();
Intent intent = new Intent(this, inzeong_fail.class);
startActivity(intent);
}
private class MyLicenseCheckerCallback implements LicenseCheckerCallback {
@Override
public void allow() {
if (isFinishing()) {
// Don't update UI if Activity is finishing.
return;
}
Log.d("", "=========================== 인증");
Intent intent = new Intent(Inzeong_goo.this, TabMain.class);
startActivity(intent);
finish();
}
@Override
public void applicationError(ApplicationErrorCode errorCode) {
Log.d("", "=========================== 오류");
cancel();
}
@Override
public void dontAllow() {
if (isFinishing()) {
// Don't update UI if Activity is finishing.
return;
}
Log.d("", "=========================== No");
cancel();
}
}
protected void onDestroy() {
super.onDestroy();
mChecker.onDestroy(); // 어플리케이션 종료시 메모리 반환
}
}
우선 실장비에 있는건 개발자 계정이 있구요. 예뮬레이터로 만든 새로운 계정에서도 똑같습니다ㅠㅠ 이건뭐..
그리고 라이센스 테스트 응답 설정하는 곳에 보면
이 라이센스 테스트 응답은 내가 마켓에 업로드한 애플리케이션과 관련하여 *******@gmail.com 계정 또는 위 목록에 나온 테스트 계정을 사용하여 기기에 전송됩니다. 이 계정(테스트 계정 아님)은 아직 마켓에 업로드되지 않은 애플리케이션에 대한 응답도 수신합니다.
라고 나와 있는걸로 봐서 마켓에 안올려도 개발자 계정은 바로 통과해야되는데 그렇지가 않습니다ㅠㅠ




혹시.. 테스트 폰에 안드로이드 개발자 계정이 등록 되어있는 것은 아닐까요?? 그렇다면 아마 바로 통과가 될겁니다..