[권한]
<uses-permission android:name="com.android.vending.CHECK_LICENSE />
<uses-permission android:name="android.permission.READ_PHONE_STATE" />
[import]
import android.telephony.TelephonyManager;
import com.android.vending.licensing.AESObfuscator;
import com.android.vending.licensing.LicenseChecker;
import com.android.vending.licensing.LicenseCheckerCallback;
import com.android.vending.licensing.ServerManagedPolicy;
[class]
private class MyLicenseCheckerCallback implements LicenseCheckerCallback {
@Override
public void allow() {
if (isFinishing()) {
return;
}
// 라이선스 인증에 성공했을때 수행할 일을 여기에 추가
}
@Override
public void applicationError(ApplicationErrorCode errorCode) {
// 에러 메시지 출력 등의 루틴 추가
}
@Override
public void dontAllow() {
if (isFinishing()) {
return;
}
// 라이선스 인증에 실패했을 때 수행할 일을 여기에 추가
}
}
[onCreate]
public class MainActivity extends Activity {
// 2에서 확인한 public key
private static final String BASE64_PUBLIC_KEY = "MIIBIjANBgkqhkiG ... ";
// 20개의 랜덤한 byte
private static final byte[] SALT = {-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;
@Override
public void onCreate(Bundle savedInstanceState) {
super.onCreate(savedInstanceState);
// LicenseCheckerCallback 초기화
mLicenseCheckerCallback = new MyLicenseCheckerCallback();
// 디바이스 아이디를 얻기 위한 루틴
TelephonyManager tm = (TelephonyManager) getSystemService(Context.TELEPHONY_SERVICE);
String deviceId = tm.getDeviceId();
// LicenseChecker 초기화
mChecker = new LicenseChecker(
this,
new ServerManagedPolicy(this, new AESObfuscator(SALT, getPackageName(), deviceId)),
BASE64_PUBLIC_KEY);
// License Validation 실행
mChecker.checkAccess(mLicenseCheckerCallback);
}
@Override
protected void onDestroy() {
super.onDestroy();
mChecker.onDestroy(); // 어플리케이션 종료시 메모리 반환
}
}
출처 : http://techdic.tistory.com/48
댓글 없음:
댓글 쓰기