앱이 50mb가 넘어서 확장파일 만들고, 구글 개발자 콘솔에 올렸습니다.
구글링 해서 obb가 폰에 저장된다는 폴더에 임의로 obb파일을 넣고 테스트를 마치고..
obb파일 없이 apk파일만 설치한 후, obb파일이 해당 폴더에 없을 때 다운로드 받게 하는 로직을 테스트중인데요 ㅠㅠ
계속 해서 다운받은 파일의 경로를 읽어오다 앱이 죽어버려서 로그를 찍어보니..
public void onDownloadStateChanged(int newState) {} 로 다운로드 상태를 로그로 찍고 있거든요.
근데 newState 상태가 STATE_COMPLETED 즉, 다운로드 완료 상태가 되고 로그가 찍혔는데..
obb파일이 있어야 할 곳에 obb파일이 다운로드 되어 있지도 않고, 파일 경로를 찾지 못해서 에러가 납니다.
@Override
public void onDownloadStateChanged(int newState) {
// TODO Auto-generated method stub
Log.i("AA", "in onDownloadStateChanged, newState=" + newState);
boolean showDashboard = true;
boolean fAppFinish = false;
//상황에 맞게 작업들을 넣어줘야합니다.
switch (newState) {
case STATE_COMPLETED:// The download was finished
Log.i("AA", "in onDownloadStateChanged, 다운로드 완");
showDashboard = false;
callNext();
break;
case STATE_IDLE:
Log.i("AA", "in onDownloadStateChanged, STATE_IDLE");
break;
case STATE_FETCHING_URL:
showDashboard = true;
Log.i("AA", "in onDownloadStateChanged, STATE_FETCHING_URL");
break;
case STATE_CONNECTING:
showDashboard = true;
Log.i("AA", "in onDownloadStateChanged, STATE_CONNECTING");
break;
case STATE_DOWNLOADING:
showDashboard = true;
Log.i("AA", "in onDownloadStateChanged, STATE_DOWNLOADING");
break;
case STATE_PAUSED_NETWORK_UNAVAILABLE:
Log.i("AA", "in onDownloadStateChanged, STATE_PAUSED_NETWORK_UNAVAILABLE");
break;
case STATE_PAUSED_BY_REQUEST:
Log.i("AA", "in onDownloadStateChanged, STATE_PAUSED_BY_REQUEST");
break;
case STATE_PAUSED_WIFI_DISABLED_NEED_CELLULAR_PERMISSION:
showDashboard = false;
Log.i("AA", "in onDownloadStateChanged, STATE_PAUSED_WIFI_DISABLED_NEED_CELLULAR_PERMISSION");
break;
case STATE_PAUSED_NEED_CELLULAR_PERMISSION:
showDashboard = false;
Log.i("AA", "in onDownloadStateChanged, STATE_PAUSED_NEED_CELLULAR_PERMISSION");
break;
case STATE_PAUSED_WIFI_DISABLED:
Log.i("AA", "in onDownloadStateChanged, STATE_PAUSED_WIFI_DISABLED");
break;
case STATE_PAUSED_NEED_WIFI:
Log.i("AA", "in onDownloadStateChanged, STATE_PAUSED_NEED_WIFI");
break;
case STATE_PAUSED_ROAMING:
Log.i("AA", "in onDownloadStateChanged, STATE_PAUSED_ROAMING");
break;
case STATE_PAUSED_NETWORK_SETUP_FAILURE:
Log.i("AA", "in onDownloadStateChanged, STATE_PAUSED_NETWORK_SETUP_FAILURE");
break;
case STATE_PAUSED_SDCARD_UNAVAILABLE:
Log.i("AA", "in onDownloadStateChanged, STATE_PAUSED_SDCARD_UNAVAILABLE");
break;
case STATE_FAILED_UNLICENSED:
//ToastS.makeText(mToast, this, "라이센스 검사에 실패 했습니다.\n앱을 종료합니다.");
fAppFinish = true;
showDashboard = false;
Log.i("AA", "in onDownloadStateChanged, STATE_FAILED_UNLICENSED");
break;
case STATE_FAILED_FETCHING_URL:
showDashboard = false;
Log.i("AA", "in onDownloadStateChanged, STATE_FAILED_FETCHING_URL");
break;
case STATE_FAILED_SDCARD_FULL:
//ToastS.makeText(mToast, this, "저장 공간이 부족합니다.");
showDashboard = false;
Log.i("AA", "in onDownloadStateChanged, STATE_FAILED_SDCARD_FULL");
break;
case STATE_FAILED_CANCELED:
showDashboard = false;
Log.i("AA", "in onDownloadStateChanged, STATE_FAILED_CANCELED");
break;
case STATE_FAILED:
showDashboard = false;
Log.i("AA", "in onDownloadStateChanged, STATE_FAILED");
break;
}
if (fAppFinish) {
finish();
}
}
로그캣에 찍히는 것을 보면,
06-18 23:23:06.286: I/AA(3844): in onDownloadStateChanged, newState=2
06-18 23:23:06.286: I/AA(3844): in onDownloadStateChanged, STATE_FETCHING_URL
06-18 23:23:06.926: I/LicenseChecker(3844): Received response.
06-18 23:23:06.926: I/LicenseChecker(3844): Clearing timeout.
06-18 23:23:06.951: I/AA(3844): in onDownloadStateChanged, newState=5
06-18 23:23:06.951: I/AA(3844): in onDownloadStateChanged, 다운로드 완
이렇게 찍히고 있구요.
근데 obb 폴더에는 파일이 다운로드되어 있지 않아요. ㅠㅠ
뭐가 문제인 걸까요 ㅠㅠ