>source

사운드 보드 응용 프로그램을 만들고 있는데 사용자가 자산에서 파일을 다운로드하여 알림 사운드/벨소리로 설정할 수 있기를 원합니다. HTTP/HTTPS에서만 파일을 다운로드 할 수 있다는 오류가 발생합니다. 이 문제를 해결할 방법이 있습니까?

DownloadManager.Request request = new DownloadManager.Request(Uri.parse("content://com.thingy.app/" + filename));
request.setDescription("Soundbite from ");
request.setTitle(filename);
request.allowScanningByMediaScanner();
request.setNotificationVisibility(DownloadManager.Request.VISIBILITY_VISIBLE_NOTIFY_COMPLETED);
request.setDestinationInExternalPublicDir(Environment.DIRECTORY_DOWNLOADS, filename);
DownloadManager manager = (DownloadManager) getSystemService(Context.DOWNLOAD_SERVICE);
manager.enqueue(request);

  • 답변 # 1

    이 기능을 사용하여 Asset 폴더의 SQLite 데이터베이스를 내부 저장소로 복사합니다.

           //Open your local db as the input stream
        InputStream myInput = myContext.getAssets().open(DB_IN);
        // Path to the just created empty db
        String outFileName = DB_PATH + DB_NAME;
        //Open the empty db as the output stream
        OutputStream myOutput = new FileOutputStream(outFileName);
        //transfer bytes from the input file to the output file
        byte[] buffer = new byte[1024];
        int length;
        while ((length = myInput.read(buffer))>0){
            myOutput.write(buffer, 0, length);
        }
        //Close the streams
        myOutput.flush();
        myOutput.close();
        myInput.close();
    
    

  • 답변 # 2

    AssetManager 사용  그리고 그 open()   InputStream 를 얻는 방법  자산 내용에. 그런 다음 바이트를 FileOutputStream 에 복사하십시오.  만들려는 파일에.

관련 자료

  • 이전 xslt 1.0 - 요청 된 노드뿐만 아니라 모든 노드를 반환하는 Xpath 첨자
  • 다음 html - javaScript를 사용하여 요소의 높이 (px가 아닌)를 어떻게 얻을 수 있습니까?