نمایش ندادن عکس و ویدیو بوجود آمده در گالری ( کد صحیح اینکار در پاسخ انتهایی )
با سلام دوستان عزیز... این دفعه نوبت گالری هست که منو اذیت کنه
ببینید دوستان من به وسیله کد چندین دایرکتوری میسازم و به وسیله برنامم عکسبرداری میکنم و داخل دایرکتوری خودم میریزم و همچنین تو یه دایرکتوری دیگه ویدیوهایی رو از یه پوشه دیگه میگیرم و میریزم داخل پوشه خودم، پس یه پوشه عکس دارم و یه پوشه ویدیو که باید هر کدام داخل گالری نمایش داده بشن، اما متاسفانه این اتفاق نمیوفته و در گالری نمایش داده نمیشه، حالا نکته جالب اینجاست که من وقتی میرم به مسیر دایرکتوریم حالا چه پوشه های اولی یا پوشه های بعدی هر کدوم فرق نمیکنه، مهم اینه که من دستی یه تغییری تو نامش یا هر کار دیگه ایی انجام بدم اون موقع داخل گالری نمایان میشن،
اصل کلام این بود که من هر کاری که با برنامه نویسی انجامش بدم از ساخت پوشه گرفته تا ساخت فایل عکس تو گالری نمایش داده نمیشه، اما وقتی دستی میام یه تغییری تو مسیر ساخته شده میدم اون موقع گالری شناسایش میکنه و نمایشش میده،
دوستان میدونم بیش از حد نوشتم و زیادی توضیح دادم، از بس هر وقت هر چی نوشتم کسی متوجه نشد و گفتند سوالت گنگ هست، فکر نکنم کسی مثل من باشه که سوالشو کامل شفاف سازی کنه، آخرشم میان میگن، متوجه نشدم مشکلت چیه !!!!
حالا دوستان عزیز راهنمایی کنند و بگن چیکارش کنم که تو گالری نمایشش بده
با تشکر فراوان ...
بعد از تهیه عکس یا فیلم متد زیر را صدا بزنید تا گالری آپدیت بشه
public static void galleryAddPic() {
Intent localIntent = new Intent("android.intent.action.MEDIA_SCANNER_SCAN_FILE");
localIntent.setData(Uri.fromFile(new File(DIR_DATABASE)));
Curreantactivity.sendBroadcast(localIntent);
}
متاسفانه این کد برام جواب نداد، اصلا متد فراخوانی نمیشه
این کد رو نوشتم
private static final String DIR_DATABASE = null;
private Activity _activity;
protected void galleryAddPic() {
ShowToastLong("Start");
Intent localIntent = new Intent("android.intent.action.MEDIA_SCANNER_SCAN_FILE");
localIntent.setData(Uri.fromFile(new File(DIR_DATABASE)));
_activity.sendBroadcast(localIntent);
ShowToastLong("End");
}
وقتی عبارت DIR_DATABASE رو بکار بردم، ایکلیپس گفت که نمیشناسش و بهم چند مورد پیشنهاد داد و من رو اولیش کلیک کردم و یه String به شکل زیر برام ساخت.
private static final String DIR_DATABASE = null;
ولی خودم 2 تا متد تست که خودم نوشته بودم بالا و پایین کد گذاشتم که ببینم خوانده میشه یا نه، اولی که Start هست خونده میشه ولی آخری که End است اجرا نمیشه، یعنی اینکه کد فراخوانی نمیشه، چیکارش کنم، راهنمایی کنید...
نگاه کنید کلاسی که من باهاش کار میکنم اینجوریه
import com.unity3d.player.UnityPlayer;
import com.unity3d.player.UnityPlayerActivity;
public class PluginUnityActivity extends UnityPlayerActivity {
private Activity _activity;
@Override
public void onCreate(Bundle savedInstanceState) {
super.onCreate(savedInstanceState);
_activity = UnityPlayer.currentActivity;
}
}
الان Activity من شده >>>> activity_
و هرجا بخوام از Activity استفاده کنم از این activity_ استفاده میکنم
حالا من یه کد پیدا کردم که گالری رو بروز رسانی میکنه، اما خیلی دیر، یعنی وقتی اون کد رو صدا میزنم حداقل یه 30 ثانیه طول میده تا گالری بروز بشه و تصاویر من توش بیاد.
واسه شما هم همیجوری هست؟ بروز رسانی گالری خیلی طول میده؟
sendBroadcast(new Intent(Intent.ACTION_MEDIA_MOUNTED, Uri.parse("file://" + Environment.getExternalStorageDirectory())));
کد بالا دیگه به دایرکتوری خاصی تعلق نداره و همه SDcard رو بروز میکنه، اما من به خودم گفتم شاید بخاطر اینکه همه SDcard رو میخواد بروز کنه این همه طول میده، آخرش آدرسه پوشمو دادم، ولی باز همون زمان طولانی حداقل 30 ثانیه طول میده تا گالری بروز بشه
من هر کاری میخوایم انجام بدیم یه گیری توش هست، !!!!
درستش کردم در حد المپیک، با تشکر از آقای میکائیل عزتی یا hamcalas که پاسخگو سوالاتم بود.
این کد پایین هم برای ویدیو و هم برای تصویر هست که در ایکی ثانیه به گالری اضافشون میکنه !!
متد اول ورودیش یه آدرس کامل یه عکس رو میگیره و به محض صدا زده شدن تصویر مورد نظر به گالری اضاف میشه
متد دومی هم یه آدرس کامل ویدیو رو میگیره و به محض صدا زده شدن ویدیو رو به گالری اضاف میکنه
// متد آپدیت کردن گالری یا اضاف کردن فیلم و عکس به گالری برای نمایش فیلم و عکس جدید در گالری
protected void galleryAddPicture(String PathName) {
File file = new File(PathName);
ContentValues values = new ContentValues();
values.put(MediaStore.Images.Media.DATA, file.getAbsolutePath());
values.put(MediaStore.Images.Media.MIME_TYPE, "image/png"); // setar isso
getContentResolver().insert(MediaStore.Images.Media.EXTERNAL_CONTENT_URI, values);
}
protected void galleryAddVideo(String PathName) {
File file = new File(PathName);
ContentValues values = new ContentValues();
values.put(MediaStore.Video.Media.DATA, file.getAbsolutePath());
values.put(MediaStore.Video.Media.MIME_TYPE, "video/mp4"); // setar isso
getContentResolver().insert(MediaStore.Video.Media.EXTERNAL_CONTENT_URI, values);
}
موفق باشید ...
پاسخگویی و مشاهده پاسخ های این سوال تنها برای اعضای ویژه سایت امکان پذیر است .
چنانچه تمایل دارید به همه بخش ها دسترسی داشته باشید میتوانید از این بخش لایسنس این آموزش را خریداری نمایید .