본문 바로가기

android tech.

Obb 파일 다운로드

구글 플레이에서 자동으로 다운로드 된다.


다운로드가 완료되지않아 앱 실행 시 다운로드 시켜야할 경우 다음과 같이 구현.



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