구글 플레이에서 자동으로 다운로드 된다.
다운로드가 완료되지않아 앱 실행 시 다운로드 시켜야할 경우 다음과 같이 구현.
String apkName = Helpers.getExpansionAPKFileName(this, true, BuildConfig.VERSION_CODE);
boolean hasFile = Helpers.doesFileExist(this, apkName, 130712253L, false);
if(hasFile) {
} else {
Intent intent = getIntent();
Intent notiIntent = new Intent(this, getClass());
notiIntent.setFlags(Intent.FLAG_ACTIVITY_NEW_TASK |Intent.FLAG_ACTIVITY_CLEAR_TOP);
notiIntent.setAction(intent.getAction());
if(intent.getCategories() != null) {
for(String category : intent.getCategories()) {
notiIntent.addCategory(category);
}
}
PendingIntent pendingIntent = PendingIntent.getActivity(this, 0, notiIntent,PendingIntent.FLAG_UPDATE_CURRENT);
try {
int result = DownloaderClientMarshaller.startDownloadServiceIfRequired(this,pendingIntent, ObbDownloaderService.class);
if(DownloaderClientMarshaller.NO_DOWNLOAD_REQUIRED != result) {
return;
}
} catch (PackageManager.NameNotFoundException e) {
e.printStackTrace();
}
}
* 130712253L <- obb 파일 용량인데, 등록된 obb 파일 용량과 같아야 한다.
ObbDownloaderService.java
public class ObbDownloaderService extends DownloaderService {
public static final String PUBLIC_KEY = "app base 64 key";
public static final byte[] SALT = new byte[] {1, 42, -12, -1, 54, 98,
-100, -12, 43, 2, -8, -4, 9, 5, -106, -107, -33, 45, -1, 84
};
@Override
public String getPublicKey() {
return PUBLIC_KEY;
}
@Override
public byte[] getSALT() {
return SALT;
}
@Override
public String getAlarmReceiverClassName() {
return ObbAlarmReceiver.class.getName();
}
}
ObbAlarmReceiver.java
public class ObbAlarmReceiver extends BroadcastReceiver {
@Override
public void onReceive(Context context, Intent intent) {
try {
DownloaderClientMarshaller.startDownloadServiceIfRequired(context,
intent, ObbDownloaderService.class);
} catch (PackageManager.NameNotFoundException e) {
e.printStackTrace();
}
}
}
당연히 AndroidManifest.xml에 등록
<service android:name=".service.ObbDownloaderService"/>
<receiver android:name=".service.ObbAlarmReceiver"/>
'android tech.' 카테고리의 다른 글
가속 센서와 자기 센서로 회전 구하기 (0) | 2015.08.31 |
---|---|
Beacon 연동 (0) | 2015.08.31 |
Obb 파일 안에 있는 영상 재생 (0) | 2015.08.31 |
view를 bitmap으로 캡쳐하는 방법 (0) | 2014.05.12 |
Json 다운로드하기 (0) | 2014.05.02 |