davod56 17 ارسال شده در ۶ آبان ۱۳۹۵ گزارش اشتراک گذاری ارسال شده در ۶ آبان ۱۳۹۵ سلام لطفا اساتید راهنمایی کنند... من از کد زیر برای دانلود فایل mp3 استفاده می کنم و مشکلی که دارم این هست که برنامه در شبیه ساز درست کار می کنه ولی در گوشی (اندروید 6) درست کار نمی کنه!!! یعنی نه پوشه ای می سازه و نه فایل رو دانلود می کنه... اینم کدی که استفاده می کنم.... import android.app.Activity; import android.app.Dialog; import android.app.ProgressDialog; import android.os.AsyncTask; import android.os.Bundle; import android.os.Environment; import android.util.Log; import android.widget.TextView; import java.io.File; import java.io.FileOutputStream; import java.io.InputStream; import java.net.HttpURLConnection; import java.net.URL; public class test extends Activity { public static final String LOG_TAG = "Android Downloader by The Code Of A Ninja"; //initialize our progress dialog/bar private ProgressDialog mProgressDialog; public static final int DIALOG_DOWNLOAD_PROGRESS = 0; //initialize root directory File rootDir = Environment.getExternalStorageDirectory(); //defining file name and url public String fileName = "097_ghadr.mp3"; public String fileURL = "http://gmi.zgig.in/download/097_ghadr.mp3"; @Override public void onCreate(Bundle savedInstanceState) { super.onCreate(savedInstanceState); //setting some display setContentView(R.layout.test); TextView tv = new TextView(this); tv.setText("Android Download File With Progress Bar"); //making sure the download directory exists checkAndCreateDirectory("/my_downloads"); //executing the asynctask new DownloadFileAsync().execute(fileURL); } //this is our download file asynctask class DownloadFileAsync extends AsyncTask { @Override protected void onPreExecute() { super.onPreExecute(); showDialog(DIALOG_DOWNLOAD_PROGRESS); } @Override protected String doInBackground(String... aurl) { try { //connecting to url URL u = new URL(fileURL); HttpURLConnection c = (HttpURLConnection) u.openConnection(); c.setRequestMethod("GET"); c.setDoOutput(true); c.connect(); //lenghtOfFile is used for calculating download progress int lenghtOfFile = c.getContentLength(); //this is where the file will be seen after the download FileOutputStream f = new FileOutputStream(new File(rootDir + "/my_downloads/", fileName)); //file input is from the url InputStream in = c.getInputStream(); //here’s the download code byte[] buffer = new byte[1024]; int len1 = 0; long total = 0; while ((len1 = in.read(buffer)) > 0) { total += len1; //total = total + len1 publishProgress(""+ (int)((total*100)/lenghtOfFile)); f.write(buffer, 0, len1); } f.close(); } catch (Exception e) { Log.d(LOG_TAG, e.getMessage()); } return null; } protected void onProgressUpdate(String... progress) { Log.d(LOG_TAG,progress[0]); mProgressDialog.setProgress(Integer.parseInt(progress[0])); } @Override protected void onPostExecute(String unused) { //dismiss the dialog after the file was downloaded dismissDialog(DIALOG_DOWNLOAD_PROGRESS); } } //function to verify if directory exists public void checkAndCreateDirectory(String dirName){ File new_dir = new File( rootDir + dirName ); if( !new_dir.exists() ){ new_dir.mkdirs(); } } //our progress bar settings @Override protected Dialog onCreateDialog(int id) { switch (id) { case DIALOG_DOWNLOAD_PROGRESS: //we set this to 0 mProgressDialog = new ProgressDialog(this); mProgressDialog.setMessage("Downloading file..."); mProgressDialog.setIndeterminate(false); mProgressDialog.setMax(100); mProgressDialog.setProgressStyle(ProgressDialog.STYLE_HORIZONTAL); mProgressDialog.setCancelable(true); mProgressDialog.show(); return mProgressDialog; default: return null; } } } نقل قول لینک ارسال به اشتراک گذاری در سایت های دیگر
mohammadi66 23 ارسال شده در ۶ آبان ۱۳۹۵ گزارش اشتراک گذاری ارسال شده در ۶ آبان ۱۳۹۵ Environment.getExternalStorageDirectory(); قبلا که همچین پروژه ای داشتم خوندم که برای اندروید 6 به بعد مسیر ذخیره فایل عوض شده و شما باید در پوشه android و زیرپوشه فولدر پکیج برنامه تان قرار بگیرد. یه نگاهی توی فولدر اندروید بنداز و فولدر پکیج های برنامه های پیش فرض رو یه نگاهی بنداز نقل قول لینک ارسال به اشتراک گذاری در سایت های دیگر
davod56 17 ارسال شده در ۶ آبان ۱۳۹۵ مالک گزارش اشتراک گذاری ارسال شده در ۶ آبان ۱۳۹۵ ممنونممشکلی که هست همینه که اولا اصلا فولدر پکیچ ساخته نمیشه دوما فایل دانلود نمیشه... یعنی progressbar میاد و حدودا 10 بیست ثانیه هست ولی پر نمی شه و بعد هم میره... اگه می شه بیشتر راهنمایی کنید... در اندروید 6 راه حلش چیه؟ اگه می شه کدی که باید عوض بشه یا کامل بشه رو مشخص کنید... نقل قول لینک ارسال به اشتراک گذاری در سایت های دیگر
30yamak 2 ارسال شده در ۷ آذر ۱۳۹۶ گزارش اشتراک گذاری ارسال شده در ۷ آذر ۱۳۹۶ از نسخه ۶ به بعد باید مجوز دسترسی در حال اجرا رو به برنامه بدی که جواب بده, مثل تلگرام که وقتی میخوایی واسه بار اول عکس بفرستی مجوز دسترسی به فایل ها رو ازت میخواد 1 نقل قول لینک ارسال به اشتراک گذاری در سایت های دیگر
kamiar101 3 ارسال شده در ۱۰ بهمن ۱۳۹۶ گزارش اشتراک گذاری ارسال شده در ۱۰ بهمن ۱۳۹۶ نقل قول لینک ارسال به اشتراک گذاری در سایت های دیگر
پست های پیشنهاد شده
به گفتگو بپیوندید
هم اکنون می توانید مطلب خود را ارسال نمایید و بعداً ثبت نام کنید. اگر حساب کاربری دارید، برای ارسال با حساب کاربری خود اکنون وارد شوید .