如何访问android中的下载文件夹?
我是新的android,我做了一个应用程序,其中可以下载文件下载文件夹(使用下载pipe理器)。 我可以看到图片,如果我去模拟器下载文件夹。 所以,如果我想显示下载文件的幻灯片,我怎样才能获得该文件夹的访问? 其次如何添加进度条到这个代码: –
import java.util.Arrays; import android.app.Activity; import android.app.DownloadManager; import android.app.DownloadManager.Query; import android.app.DownloadManager.Request; import android.content.BroadcastReceiver; import android.content.Context; import android.content.Intent; import android.content.IntentFilter; import android.database.Cursor; import android.net.Uri; import android.os.Bundle; import android.view.View; import android.widget.ImageView; public class Download_managerActivity extends Activity { private long quueue_for_url; private DownloadManager dm; /** Called when the activity is first created. */ @Override public void onCreate(Bundle savedInstanceState) { super.onCreate(savedInstanceState); setContentView(R.layout.main); BroadcastReceiver receiver = new BroadcastReceiver() { @Override public void onReceive(Context context, Intent intent) { String action = intent.getAction(); if (DownloadManager.ACTION_DOWNLOAD_COMPLETE.equals(action)) { long downloadId = intent.getLongExtra( DownloadManager.EXTRA_DOWNLOAD_ID, 0); Query query = new Query(); query.setFilterById(quueue_for_url); Cursor c = dm.query(query); if (c.moveToFirst()) { int columnIndex = c .getColumnIndex(DownloadManager.COLUMN_STATUS); if (DownloadManager.STATUS_SUCCESSFUL == c .getInt(columnIndex)) { ImageView view = (ImageView) findViewById(R.id.imageView1); String uri_String_abcd = c .getString(c .getColumnIndex(DownloadManager.COLUMN_LOCAL_URI)); view.setImageURI(Uri.parse(uri_String_abcd)); } } } } }; registerReceiver(receiver, new IntentFilter( DownloadManager.ACTION_DOWNLOAD_COMPLETE)); } public void onClick(View view) { dm = (DownloadManager) getSystemService(DOWNLOAD_SERVICE); Request request_for_url = new Request( Uri.parse("http://fc03.deviantart.net/fs14/i/2007/086/9/1/Steve_Jobs_portrait_by_tumb.jpg")); Request request_for_url1 = new Request( Uri.parse("http://2.bp.blogspot.com/_q7Rxg4wqDyc/S5ZRVLxVYuI/AAAAAAAAAvU/fQAUZ2XFcp8/s400/katrina-kaif.jpg")); Request request_for_url2 = new Request( Uri.parse("http://www.buzzreactor.com/sites/default/files/Bill-Gates1.jpg")); quueue_for_url = dm.enqueue(request_for_url); quueue_for_url = dm.enqueue(request_for_url1); quueue_for_url = dm.enqueue(request_for_url2); } public void showDownload(View view) { Intent i = new Intent(); //try more options to show downloading , retrieving and complete i.setAction(DownloadManager.ACTION_VIEW_DOWNLOADS); startActivity(i); } }
我想添加一个button,执行下载文件夹中的图片的function,然后像幻灯片一样显示。
<?xml version="1.0" encoding="utf-8"?> <manifest xmlns:android="http://schemas.android.com/apk/res/android" package="cmpe235.lab1" android:versionCode="1" android:versionName="1.0"> <uses-sdk android:minSdkVersion="9" /> <uses-permission android:name="android.permission.INTERNET"></uses-permission> <application android:icon="@drawable/icon" android:label="@string/app_name"> <activity android:name=".Download_managerActivity" android:label="@string/app_name"> <intent-filter> <action android:name="android.intent.action.MAIN" /> <category android:name="android.intent.category.LAUNCHER" /> </intent-filter> </activity> </application> </manifest>
main.xml中: –
<?xml version="1.0" encoding="utf-8"?> <LinearLayout xmlns:android="http://schemas.android.com/apk/res/android" android:orientation="vertical" android:layout_width="fill_parent" android:layout_height="fill_parent"> <Button android:text="Start Download" android:id="@+id/button1" android:layout_width="wrap_content" android:layout_height="wrap_content" android:layout_gravity="center_vertical|center_horizontal|center" android:textColor="#0000A0" android:typeface="serif" android:onClick="onClick"></Button> <Button android:text="View Downloads" android:id="@+id/button2" android:layout_width="wrap_content" android:layout_height="wrap_content" android:layout_gravity="center_vertical|center_horizontal|center" android:textColor="#0000A0" android:typeface="serif" android:onClick="showDownload"></Button> <ImageView android:layout_height="wrap_content" android:id="@+id/imageView1" android:src="@drawable/icon" android:layout_width="wrap_content"></ImageView> </LinearLayout>
对于你的第一个问题尝试Environment.getExternalStoragePublicDirectory(Environment.DIRECTORY_DOWNLOADS);
(可用于API 8)要访问此目录中的单个文件,请使用File.list()或File.listFiles() 。 似乎报告下载进度只能在通知中看到,请看这里 。
您需要在manifest.xml文件中设置此权限
android.permission.WRITE_EXTERNAL_STORAGE
如果你使用棉花糖,你必须:
- 在运行时请求权限 (用户将允许或拒绝请求)或:
- 用户必须进入设置 – >应用程序 – > {您的应用程序} – >权限,并授予存储访问权限 。
这是因为在棉花糖,谷歌彻底改变了权限的工作方式。
尝试此代码的进度条
// Show Dialog Box with Progress bar @Override protected Dialog onCreateDialog(int id) { switch (id) { case progress_bar_type: prgDialog = new ProgressDialog(this); prgDialog.setMessage("Downloading Mod Please wait..."); prgDialog.setIndeterminate(false); prgDialog.setMax(100); prgDialog.setProgressStyle(ProgressDialog.STYLE_HORIZONTAL); prgDialog.setCancelable(false); prgDialog.show(); return prgDialog; default: return null; } }