mehdisamavat

توسعه دهنده اندروید
  • تعداد ارسال ها

    11
  • تاریخ عضویت

  • آخرین بازدید

اعتبار در انجمن

0 Neutral

درباره mehdisamavat

  • درجه
    Member
  1. سلام خدمت دوستان فایلی رو دانلود میکنم که در اندرید زیر 6 به دستی در پوشه دانلود ذخیره میشه اما در اندروید شش به بالا ارور پرمیشن دیناید میده I/LOG: java.io.FileNotFoundException: /sdcard/Download/kelidvaje_omran_ejra.pdf: open failed: EACCES (Permission denied) ارور بالا گوگل کردم نتونستم از کد های موجود جوابی بگیرم ممنون میشم کمک کنید <uses-permission android:name="android.permission.READ_EXTERNAL_STORAGE" /> <uses-permission android:name="android.permission.WRITE_EXTERNAL_STORAGE" /> <uses-permission android:name="android.permission.WRITE_INTERNAL_STORAGE" /> این پرمیشن ها رو داخل مانیفست وارد کردم لطفا راهنمایی کنید دو روزه درگیرشم
  2. با سلام خدمت دوستان میخوام روی فایل های برنامه که کاربر بعد از نصب برنامه و خرید اون دانلود میکنه سیستمی پیاده کنم که کاربران با گوشی های روت نتونن به اون فایل ها دسترسی پیدا کنن خلاضه اینکه چطور میتونم بر روی فایل ها پسورد بزارم و از درون برنامه به اون ها دسترسی داشته باشم؟(فایل ها شامل عکس های محتوایی هستند) لطفا راهنمایی کنید
  3. سلام لطفا راهنمایی کنید این کدهبا کد های زید میخوام فایلی رو دانلود و پروگرس بار میزان دانلود شده رو نمایش بده اما پروگرس بار اصلا درست اجرا نمیشه یعنی مقدار دانلود شده رو نمایش نمیده package com.rule.myapplication; import android.app.ProgressDialog; import android.content.Context; import android.content.DialogInterface; import android.graphics.Bitmap; import android.graphics.BitmapFactory; import android.os.AsyncTask; import android.os.Bundle; import android.os.PowerManager; import android.support.v7.app.AppCompatActivity; import android.util.Log; import android.view.View; import android.widget.Button; import android.widget.ImageView; import android.widget.Toast; import java.io.BufferedInputStream; import java.io.File; import java.io.FileInputStream; import java.io.FileNotFoundException; import java.io.FileOutputStream; import java.io.IOException; import java.io.InputStream; import java.io.OutputStream; import java.net.HttpURLConnection; import java.net.URL; import java.util.zip.ZipEntry; import java.util.zip.ZipInputStream; public class MainActivity extends AppCompatActivity { Button button, button2, button3; ImageView imageView; ProgressDialog mProgressDialog; final DownloadTask downloadTask = new DownloadTask(MainActivity.this); @Override protected void onCreate(Bundle savedInstanceState) { super.onCreate(savedInstanceState); setContentView(R.layout.activity_main); button = (Button) findViewById(R.id.button); button2 = (Button) findViewById(R.id.button2); button3 = (Button) findViewById(R.id.button3); imageView = (ImageView) findViewById(R.id.imageView); int i = 001 + 002; if (i < 10) { Toast.makeText(MainActivity.this, "00" + i, Toast.LENGTH_SHORT).show(); } button.setOnClickListener(new View.OnClickListener() { @Override public void onClick(View v) { loadImageFromStorage("/data/data/com.rule.myapplication/part2_button_gallery/part2_button_21"); } }); button2.setOnClickListener(new View.OnClickListener() { @Override public void onClick(View v) { unzip("/data/data/com.rule.myapplication/part2_button_gallery.zip", "/data/data/com.rule.myapplication/part2_button_gallery"); } }); button3.setOnClickListener(new View.OnClickListener() { @Override public void onClick(View v) { final DownloadTask downloadTask = new DownloadTask(MainActivity.this); downloadTask.execute("http://mehdisamavat.ir/part2_button_gallery.zip"); } }); // instantiate it within the onCreate method mProgressDialog = new ProgressDialog(MainActivity.this); mProgressDialog.setMessage("A message"); mProgressDialog.setIndeterminate(true); mProgressDialog.setProgressStyle(ProgressDialog.STYLE_HORIZONTAL); mProgressDialog.setCancelable(true); // execute this when the downloader must be fired mProgressDialog.setOnCancelListener(new DialogInterface.OnCancelListener() { @Override public void onCancel(DialogInterface dialog) { downloadTask.cancel(true); } }); } // usually, subclasses of AsyncTask are declared inside the activity class. // that way, you can easily modify the UI thread from here private class DownloadTask extends AsyncTask<String, Integer, String> { private Context context; private PowerManager.WakeLock mWakeLock; public DownloadTask(Context context) { this.context = context; } @Override protected String doInBackground(String... sUrl) { InputStream input = null; OutputStream output = null; HttpURLConnection connection = null; try { URL url = new URL(sUrl[0]); connection = (HttpURLConnection) url.openConnection(); connection.connect(); // expect HTTP 200 OK, so we don't mistakenly save error report // instead of the file if (connection.getResponseCode() != HttpURLConnection.HTTP_OK) { return "Server returned HTTP " + connection.getResponseCode() + " " + connection.getResponseMessage(); } // this will be useful to display download percentage // might be -1: server did not report the length int fileLength = connection.getContentLength(); // download the file input = connection.getInputStream(); output = new FileOutputStream("/data/data/com.rule.myapplication/part2_button_gallery.zip"); byte data[] = new byte[4096]; long total = 0; int count; while ((count = input.read(data)) != -1) { // allow canceling with back button if (isCancelled()) { input.close(); return null; } total += count; // publishing the progress.... if (fileLength > 0) // only if total length is known // publishProgress((int) (total * 100 / fileLength)); mProgressDialog.setProgress((int) (total * 100 / fileLength)); output.write(data, 0, count); } } catch (Exception e) { return e.toString(); } finally { try { if (output != null) output.close(); if (input != null) input.close(); } catch (IOException ignored) { } if (connection != null) connection.disconnect(); } return null; } @Override protected void onPreExecute() { super.onPreExecute(); // take CPU lock to prevent CPU from going off if the user // presses the power button during download PowerManager pm = (PowerManager) context.getSystemService(Context.POWER_SERVICE); mWakeLock = pm.newWakeLock(PowerManager.PARTIAL_WAKE_LOCK, getClass().getName()); mWakeLock.acquire(); mProgressDialog.show(); } @Override protected void onProgressUpdate(Integer... progress) { super.onProgressUpdate(progress); // if we get here, length is known, now set indeterminate to false mProgressDialog.setIndeterminate(false); mProgressDialog.setMax(300); // mProgressDialog.setProgress(progress[0]); } @Override protected void onPostExecute(String result) { mWakeLock.release(); mProgressDialog.dismiss(); if (result != null) Toast.makeText(context, "Download error: " + result, Toast.LENGTH_LONG).show(); else Toast.makeText(context, "File downloaded", Toast.LENGTH_SHORT).show(); } } public static Boolean unzip(String sourceFile, String destinationFolder) { ZipInputStream zis = null; try { zis = new ZipInputStream(new BufferedInputStream(new FileInputStream(sourceFile))); ZipEntry ze; int count; byte[] buffer = new byte[8192]; while ((ze = zis.getNextEntry()) != null) { String fileName = ze.getName(); fileName = fileName.substring(fileName.indexOf("/") + 1); File file = new File(destinationFolder, fileName); File dir = ze.isDirectory() ? file : file.getParentFile(); if (!dir.isDirectory() && !dir.mkdirs()) throw new FileNotFoundException("Invalid path: " + dir.getAbsolutePath()); if (ze.isDirectory()) continue; FileOutputStream fout = new FileOutputStream(file); try { while ((count = zis.read(buffer)) != -1) fout.write(buffer, 0, count); } finally { fout.close(); } } } catch (IOException ioe) { Log.d("ff", ioe.getMessage()); return false; } finally { if (zis != null) try { zis.close(); } catch (IOException e) { } } return true; } private void loadImageFromStorage(String path) { try { File f = new File(path, "akhlagh_Page_1.jpg"); Bitmap b = BitmapFactory.decodeStream(new FileInputStream(f)); imageView.setImageBitmap(b); } catch (FileNotFoundException e) { e.printStackTrace(); } } } کد کامله و داخل یه اکتیویتی میتونید اجرا بگیرید فقط پرمیشن و یه دکمه لازم داره
  4. سلام باین کد های برنامه هست که یه ویوپیجر و یه اداپتوره public class MainActivity extends Activity { @Override public void onCreate(Bundle savedInstanceState) { super.onCreate(savedInstanceState); setContentView(R.layout.activity_main); ViewPager viewPager = (ViewPager) findViewById(R.id.view_pager); ImagePagerAdapter adapter = new ImagePagerAdapter(); viewPager.setAdapter(adapter); } private class ImagePagerAdapter extends PagerAdapter { private int[] mImages = new int[] { R.drawable.chiang_mai, R.drawable.himeji, R.drawable.petronas_twin_tower, R.drawable.ulm, R.drawable.part1_1_1, R.drawable.part1_1_2, R.drawable.part1_1_3, R.drawable.part2_button_01, R.drawable.part2_button_02, R.drawable.part2_button_03, R.drawable.part2_button_04 }; @Override public int getCount() { return mImages.length; } @Override public boolean isViewFromObject(View view, Object object) { return view == ((ImageView) object); } @Override public Object instantiateItem(ViewGroup container, int position) { Context context = MainActivity.this; ImageView imageView = new ImageView(context); imageView.setScaleType(ImageView.ScaleType.CENTER_INSIDE); imageView.setImageResource(mImages[position]); ((ViewPager) container).addView(imageView, 0); return imageView; } @Override public void destroyItem(ViewGroup container, int position, Object object) { ((ViewPager) container).removeView((ImageView) object); } } } حالا چطور باید قابلیت زوم رو بهش اضافه کنم ---فرقی نداره چه نوع زومی باشه بعد از گوگل کردن کد های زیادو چند تا کتابخونه پیدا کردم اما هیچ کدوم رو نتونستم توی کدها جا بدم
  5. سلام من چطور میتونم با استفاده از لینک یک فولدر رو دانلود کنم ؟ داخل فولدر هم یه سری عکسه که کیفیتش برام مهمه یه سری کد از داخل نت پیدا کردم ولی اکثرل عکس ها رو خراب میکنن
  6. سلام به همه دوستان پروژه ای رو گرفتم که یه برنامه آموزشی و محتوا محوره والان هم داخل بازاره شرکت کارفرما با برنامه نویسه قبلی به مشکل خورده و حالا من باید برنامه رو از اول درست کنم حالا باید چه نکاتی رو رعایت کنم که آپدیت برنامه ای که من میزنم دقیقا جایگزین برنامه ی قبلی بر روی گوشی هایی که اپ رو خریدن بشه؟ کی استور رو دارم که واسه اکلیپس هستش
  7. سلام من میخوام محتویات رکورد های دیتابیس سمت سرورم رو جستجو کنم مثلا داخل دیتابیس یک فیلد هست که داخل فیلد جمله "علی از خانه آمد " است حالا من چطور میتونم با سرچ کردن "علی" داخل برنامم به این رکرورد برسم؟ کد phpدر این مورد هست ایا؟ لطفا راهنمایی کنید
  8. سلام به همه دوستان قضد دارم دکمه لایکی در هر ایتم از ریسایکلر ویوی برنامم بزارم که کنارش هم تعدا لایک ها نمایش داده بشه حالا مشکلی که بهش برخوردم اینه که در صورت بازگشت دوباره کاربر به صفحه ی ایتم ها ; آیتم های لایک شده باقی مونده باشن (لایک و انلایک هر آیتم حفظ بشه) کل اطلاعات ریسایکلر هم از سرور گرفته میشه لطف کنید و راهنمایی بفرمایید که چطور این کار رو انجام بدم
  9. دوباره سلام من میخوام یک اسم بدم و یک ابجکت از مشخصات اون اسم رو تحویل بگیرم ایا این کد برای این کار درسته؟(چون اجرا کردم خطا داد) @FormUrlEncoded @POST("getname") void getname(@Field("account") String account, Callback<Modelinfo> callback); یه سوال هم برام پیش اومد اینکه چرا یه پارامتر callbackداریم میفرستیم؟(آیا این پارامتر خورش یه درخواسته؟) کدهای جاوا رو هم به این شکل نوشتم: Retrofit retrofit = new Retrofit.Builder() .baseUrl(baseurl) .addConverterFactory(GsonConverterFactory.create()) .build(); APIsevice isevice = retrofit.create(APIsevice.class); isevice.getname(name, new Callback<Modelinfo>() { @Override public void onResponse(Call<Modelinfo> call, Response<Modelinfo> response) { Modelinfo modelinfo = response.body(); modelList = modelinfo.getInfo(); Toast.makeText(showpersonal.this, modelList.get(0).getName(), Toast.LENGTH_SHORT).show(); } @Override public void onFailure(Call<Modelinfo> call, Throwable t) { } }); که اینجا یه کلاس مدل دارم به اسم Modelinfo که داخلش یه arraylist هست که مشخصات رو شامل میشه و اینکه متن خطایی که بهم میده اینه:Service methods cannot return void. ایا void رو حذف کنم؟ من ازین کلاس مدل و رتروفیت به صورت یکطرفه اطلاعات رو دریافت کردم با این کد @GET("test1.php") Call<Modelinfo> getinfo(); اما برای ارسال و دریافت مشکل دارم لطفا راهنمایی کنید کل جمعم صرف این مشکل شد
  10. دوباره سلام من میخوام یک اسم بدم و یک ابجکت از مشخصات اون اسم رو تحویل بگیرم ایا این کد برای این کار درسته؟(چون اجرا کردم خطا داد) @FormUrlEncoded @POST("getname") void getname(@Field("account") String account, Callback<Modelinfo> callback); یه سوال هم برام پیش اومد اینکه چرا یه پارامتر callbackداریم میفرستیم؟(آیا این پارامتر خورش یه درخواسته؟) کدهای جاوا رو هم به این شکل نوشتم: Retrofit retrofit = new Retrofit.Builder() .baseUrl(baseurl) .addConverterFactory(GsonConverterFactory.create()) .build(); APIsevice isevice = retrofit.create(APIsevice.class); isevice.getname(name, new Callback<Modelinfo>() { @Override public void onResponse(Call<Modelinfo> call, Response<Modelinfo> response) { Modelinfo modelinfo = response.body(); modelList = modelinfo.getInfo(); Toast.makeText(showpersonal.this, modelList.get(0).getName(), Toast.LENGTH_SHORT).show(); } @Override public void onFailure(Call<Modelinfo> call, Throwable t) { } }); که اینجا یه کلاس مدل دارم به اسم Modelinfo که داخلش یه arraylist هست که مشخصات رو شامل میشه من ازین کلاس مدل و رتروفیت به صورت یکطرفه اطلاعات رو دریافت کردم با این کد @GET("test1.php") Call<Modelinfo> getinfo(); اما برای ارسال و دریافت مشکل دارم لطفا راهنمایی کنید کل جمعم صرف این مشکل شد
  11. سلام ممنون میشم راهنمایی فرمایید من میخوام یه اسم مثلا علی رو بفرستم سمت سرور و اطلاعات علی مثل مشخصاتش رو بهم برگردونه در مورد کد های اینترفیس رتروفیت مشکل دارم لطفا در مورد این که چه کدی در قسمت اینترفیس بزنم که این کار رو انجلم بده راهنمایی کنید این کد اینترفیسی بود که استفاده کردم ولی جواب نداد: @FormUrlEncoded @POST("getname.php") Call<Modelinfo> getname(@Field("account") String account); اینم کدسمت سروری که دارم: if($_SERVER['REQUEST_METHOD']=='POST'){ $account=$_POST['account']; $sqlQ="select * from info where account='$account'"; $result=mysql_query($sqlQ); $response["info"]=array(); $temp=array(); while($row=mysql_fetch_array($result)){ $temp["id"]=$row["id"]; $temp["name"]=$row["name"]; $temp["address"]=$row["address"]; array_push($response["info"],$temp); } echo json_encode($response); mysql_close($con); } ?>