2015-01-14 2 views
1

에뮬레이터에서 코드를 실행하려고 할 때마다 DownloadManager 클래스를 사용하여 응용 프로그램으로 다운로드 할 수 있도록 변경해야하는 에뮬레이터의 설정은 무엇입니까? 이것은 사용중인 코드입니다. 스타터 방식은 다운로드를 시작하는 버튼 클릭 이벤트 방식입니다.에뮬레이터에서 다운로드 관리자를 사용할 수 있도록 설정

public class MainActivity extends Activity { 
    DownloadManager dm; 
    EditText e; 
    Uri uri; 
    Long reference,ref; 
    IntentFilter i1; 
    DownloadManager.Request req; 
    @Override 
    protected void onCreate(Bundle savedInstanceState) { 
     super.onCreate(savedInstanceState); 
     setContentView(R.layout.activity_main); 
     e=(EditText)findViewById(R.id.editText1); 
     i1=new IntentFilter(DownloadManager.ACTION_NOTIFICATION_CLICKED); 
     dm=(DownloadManager)getSystemService(Context.DOWNLOAD_SERVICE); 
     BroadcastReceiver rec= new BroadcastReceiver() { 

      @Override 
      public void onReceive(Context arg0, Intent arg1) { 
       // TODO Auto-generated method stub 
       ref=arg1.getLongExtra(DownloadManager.EXTRA_DOWNLOAD_ID, -1); 
       AlertDialog.Builder alertDialog = new AlertDialog.Builder(MainActivity.this); 

       // Setting Dialog Title 
       alertDialog.setTitle("Continue download?"); 

       // Setting Dialog Message 
       alertDialog.setMessage("Do you want this download to continue?"); 


       // Setting Positive "Yes" Button 
       alertDialog.setPositiveButton("YES", new DialogInterface.OnClickListener() { 
        public void onClick(DialogInterface dialog,int which) { 

        // Write your code here to invoke YES event 
        //Toast.makeText(getApplicationContext(), "You clicked on YES", Toast.LENGTH_SHORT).show(); 
        } 
       }); 

       // Setting Negative "NO" Button 
       alertDialog.setNegativeButton("NO", new DialogInterface.OnClickListener() { 
        public void onClick(DialogInterface dialog, int which) { 
        // Write your code here to invoke NO event 
        dm.remove(ref); 
        Toast.makeText(getApplicationContext(), "Download aborted",Toast.LENGTH_LONG).show();  
        dialog.cancel(); 
        } 
       }); 

       // Showing Alert Message 
       alertDialog.show(); 
      } 
     }; 
     registerReceiver(rec, i1); 

    } 

    public void starter() 
    { 
     //String url=e.getText().toString(); 
     //if(url !="" & url!="") 
     { 
      uri=Uri.parse("http://commonsware.com/misc/test.mp4"); 
      Environment 
      .getExternalStoragePublicDirectory(Environment.DIRECTORY_DOWNLOADS) 
      .mkdirs(); 
      //req=; 

      reference=dm.enqueue(new DownloadManager.Request(uri) 
      .setDestinationInExternalPublicDir(Environment.DIRECTORY_DOWNLOADS,"test.mp4")); 

     } 

    } 
+0

앱이 충돌하는 경우에 발생할 수 있습니다. 기기에서 앱을 실행 해 보셨습니까? – Badrul

+0

매니페스트 파일에 인터넷 permisson을 추가 했습니까? – Umitk

+0

예 응용 프로그램이 기기 –

답변

0

예외는 처리하지 않습니다. 파일을 다운로드 할 때 try catch 블록을 사용하십시오. 인터넷 연결이 가능한지 여부를 확인하십시오. 인터넷 연결이 가능하면 다운로드를 계속 진행하고 사용자에게 연속성을 묻는 경고 대화 상자를 보여줍니다. 그렇지 않으면 다운로드를 취소하십시오.

또한 프록시 설정으로 인터넷 연결을 사용하는 경우에도 에뮬레이터에 대해 이러한 프록시 설정을 지정해야합니다.

+0

답장을 보내 주셔서 감사합니다. –

관련 문제