close
تبلیغات در اینترنت
docker-compose حجم نامگذاری,ocker مثال کامپوننت,نحوه کار با dumpster,د
صفحه اصلی پرشین استک

{ پرشین استک }

به دنیای برنامه نویسی خوش آمدید
|


پرشین استک تنها یک سایت نیست ، بلکه یک پروژه همگانی می باشد .


تعداد مطالب :
142


تعداد توسعه دهندگان :
11


تاریخ امروز :
یکشنبه 02 اردیبهشت 1397

به کانال تلگرام ما بپیوندید


×

لیست سوالات من

افزودن

دریافت اطلاعیه (notification) از فایل حذف شده از کارت SD

می خواهم Dumpster مانند برنامه ایجاد کنم برای اینکه می خواهم زمانی که هر فایلی حذف شد به من اطلاعیه ای (notification) داده شود تا بتوانم آنرا در حافظه برنامه ذخیره کنم . من از File Observer استفاده می کنم و پس از حذف فایل به من اطلاعیه می دهد اما در marshmallow پس از حذف فایل به من اطلاعیه نمی دهد . من این لینک را برای File Observer ارسال کردم .

من کد زیر را امتحان کردم :

 

@Override
public void onEvent(intevent,String path){
if (path == null){
return;
}
//the monitored file or directory was deleted, monitoring effectively stops
if ((FileObserver.DELETE_SELF & event) != 0){
FileAccessLogStatic.accessLogMsg += absolutePath + "/" + " is deletedn";
}
}

 

پاسخ 1 :

بیایید اول موارد زیر را روشن کنیم .

1. Dumpster از دایرکتوری trash استفاده می کند که ممکن است همیشه وجود نداشته باشد . لازم به ذکر است که Dumpster در بسیاری از دستگاه ها به درستی اجرا نمی شود، زیرا از طریق google reviews دیده می شود.

2. Dumpster از File Handler سیستم خودش استفاده می کند که از یک سرویس برای بررسی رخداد onClick استفاده می کند و اگر رخداد onClick مربوط به یک فایل باشد ، فایل را ذخیره کرده و همچنین و همچنین مسیرش را در یک فولدر ( معمولا پنهان ) و آن فولدر را هم در یک database محلی ذخیره می کند .

3. هر چه امنیت دستگاه افزایش می یابد ، امکان انجام این وظایف کمتر می شود . FileObserver از مفهوم بررسی هرگونه تغییرات در فایل ها یا حتی دایرکتوری ها استفاده می کند اما شما نمی توانید در آن تاثیری بگذارید به این معنی که شما نمی توانید از حذف آن و رساندن اطلاعیه به کاربر جلوگیری کنید .

4. inotify.h برای اهداف NDK استفاده شده است از جمله ایجاد برنامه هایی با استفاده از بررسی پوشه ها و فایل ها . علاوه بر این مفهوم استفاده شده در inotify مشابه FileObserver است . پس از حذف فایل، می توانید اعلان دریافت کنید. کد مورد استفاده در inotify چیزی شبیه به این است .

مراحل :

1. نمونه inotify را با استفاده از ()inotify_init  ایجاد کنید .

2. تمام دایرکتوری ها را با استفاده از متد ()inotify_add_watch در لیست inotify اضافه کنید .

3. برای تعیین وقایع رخ داده ، ()read را روی نمونه inotify اجرا کنید . این خواندن (read) بلاک خواهد شد تا رخداد تغییر اتفاق بیافتد . توصیه می شود تا برای عمل انتخابی خواندن روی نمونه inotify از فراخوانی متد ()select  استفاده کنید .

4. Read لیستی از رخداد هایی که روی دایرکتوری ها اتفاق افتاده را باز می گرداند . بر اساس مقدار بازگشتی از متد ()read ، ما می فهمیم که چه نوع تغییری رخ داده است .

5. در صورت حذف شدن مشاهده (watch) در دایرکتوری ها یا فایل ها ، ()inotify_rm_watch را فراخوانی کنید .

 

دو متد موجود در inotify به صورت زیر هستند :

IN_DELETE - فایل یا دایرکتوری از دایرکتوری مشاهده شده حذف شده است .

IN_DELETE_SELF - فایل یا دایرکتوری مشاهده شده خودش حذف شده است .

هر دوی این متد ها شبیه به FileObserver عمل می کنند .

شما احتیاج به ایجاد File Manager خودتان در جایی دارید که می توانید کلاس FileV2 را که از File مشتق می شود ، ایجاد کنید و می توانید متد های حذف (delete) یا همه ی متد ها را Override کنید . شما می توانید یک پاپ آپ شخصی سازی شده ایجاد کنید که با زدن دکمه بله ، فایل را به همراه فایل پشتیبان حذف کند و با زدن دکمه نه ، پاپ آپ را ببندد . (اطمینان حاصل کنید کاربر از File Manager برای حذف استفاده می کند در غیر این صورت این کار نخواهد کرد چرا که Override کردن ()delete فقط باعث خراب شدن برنامه های دیگر خواهد شد).

 

class filev2 extends File{

public filev2(@NonNull String pathname){
super(pathname);
}

public filev2(@NonNull URI uri){
super(uri);
}

@Override
public boolean delete(){
// return super.delete();
//Do as you want and return the boolean.
}

}


اگر کاربر شما از File Manager استفاده می کند ، مطمئن شوید که فایل های شما ذخیره خواهد شد . شما می توانید intent-filters را برای این کار تنظیم کنید تا FileManager در ACTION_VIEW برای این موضوع به کار آید .

 

صفحه اصلی

20

16 / 06 / 1396

PERSIAN STACK


دانلود تمامی API های اندروید

ادامه مطلب

687

چرا گاهی اوقات API موقعیت مکانی سرویس گوگل پلی ، موقعیت مکانی اشتباهی را برمی گرداند ؟

ادامه مطلب

651

چگونه نرم افزار ضبط صدای اندرویدی بسازیم ؟

ادامه مطلب

551

چرا TextView کلمات را با حروف می شکند ؟

ادامه مطلب

511

چگونه Google API برای سطح API 25 را پیدا کنیم ؟

ادامه مطلب

381

چرا وبسایت تجارت الکترونیک Magento 2 در Webview اندروید کار نمی کند ؟

ادامه مطلب

381

دانلود پروژه نمایش جستجوی کتاب برای اندروید

ادامه مطلب

347

قسمت شانزدهم - جدول ها در HTML

ادامه مطلب

269

دانلود کتابخانه Retrofit برای اندروید + پروژه

ادامه مطلب

265

دانلود سورس کد بازی اندرویدی Klooni 1010! + فایل APK

ادامه مطلب

261

در تکمیل خودکار اندروید ، دلیل dispatchProvideAutofillStructure() not laid out چیست ؟

ادامه مطلب

247

چرا زمانی که با استفاده از cordova در اندروید 7.0 ، اس ام اس ارسال می کنیم ، با اثتثنای (Exception) امنیتی مواج

ادامه مطلب

245

آیا راهی برای یافتن تغیرات ماه در نمای تقویم اندروید (calendar view) وجود دارد ؟

ادامه مطلب

243

چگونه ارور com.bumptech.glide.Registry$NoModelLoaderAvailableException: Failed to find any ModelLoaders را در اندروید رفع کنیم ؟

ادامه مطلب

205

دانلود سورس کد اپلیکیشن هواشناسی برای اندروید + فایل APK

ادامه مطلب

199

دانلود سورس کد اپلیکیشن اسکنر بارکد برای اندروید + فایل APK

ادامه مطلب

157

دانلود سورس کد تمامی نسخه های تلگرام + فایل های نصبی

ادامه مطلب

153

آموزش استفاده از دیتابیس آماده در پروژه اندرویدی

ادامه مطلب

147

دانلود تمامی نسخه های gradle برای اندروید

ادامه مطلب

143

دانلودسورس کد اپلیکیشن موزیک پلیر برای اندروید + فایل APK

ادامه مطلب

141

دانلود اسکریپت جاوای PS-CH# - ایجاد ورودی متنی پیشرفته

ادامه مطلب

یکشنبه 05 آذر 1396

قسمت هفدهم - لیست ها در HTML

ادامه مطلب

یکشنبه 21 آبان 1396

چگونه می توان با استفاده از CSS ، رنگ placeholder را تغییر داد ؟

ادامه مطلب

یکشنبه 21 آبان 1396

قسمت شانزدهم - جدول ها در HTML

ادامه مطلب

شنبه 20 آبان 1396

دانلود تمامی نسخه های gradle برای اندروید

ادامه مطلب

شنبه 20 آبان 1396

قسمت پانزدهم - عکس ها در HTML

ادامه مطلب

جمعه 19 آبان 1396

قسمت چهاردهم - لینک ها در HTML

ادامه مطلب

یکشنبه 14 آبان 1396

آموزش ساخت و شخصی سازی Navigation Drawer در اندروید استودیو

ادامه مطلب

یکشنبه 14 آبان 1396

قسمت سیزدهم - CSS در HTML

ادامه مطلب

شنبه 13 آبان 1396

قسمت بیست و پنجم (قسمت آخر) - آموزش ساخت بازی حدس

ادامه مطلب

پنجشنبه 11 آبان 1396

قسمت بیست و چهارم - آموزش نحوه ی پردازش فایل ها در جاوا

ادامه مطلب

پنجشنبه 11 آبان 1396

قسمت بیست و سوم - برنامه تکمیلی جاوا (6)

ادامه مطلب

پنجشنبه 11 آبان 1396

قسمت بیست و دوم - معرفی آرایه ها در جاوا

ادامه مطلب

پنجشنبه 11 آبان 1396

قسمت بیست و یکم - برنامه تکمیلی جاوا (5)

ادامه مطلب

پنجشنبه 11 آبان 1396

قسمت بیستم - معرفی مفهوم وراثت در جاوا

ادامه مطلب

پنجشنبه 11 آبان 1396

قسمت نوزدهم - برنامه تکمیلی جاوا (4)

ادامه مطلب

پنجشنبه 11 آبان 1396

قسمت هجدهم - معرفی عبارات کنترلی در جاوا

ادامه مطلب

پنجشنبه 11 آبان 1396

قسمت هفدهم - برنامه تکمیلی جاوا (2-3)

ادامه مطلب

چهارشنبه 10 آبان 1396

چگونه در برنامه نویسی اندروید ، یک ListView با متن و عکس بسازیم ؟

ادامه مطلب

سه شنبه 09 آبان 1396

چگونه در برنامه نویسی اندروید از فونت شخصی خود استفاده کنیم ؟

ادامه مطلب

سه شنبه 09 آبان 1396

دانلود تمامی نسخه های gradle برای اندروید

ادامه مطلب

آموزش ساخت و شخصی سازی Navigation Drawer در اندروید استودیو

ادامه مطلب

چگونه در برنامه نویسی اندروید ، یک ListView با متن و عکس بسازیم ؟

ادامه مطلب

چگونه در برنامه نویسی اندروید از فونت شخصی خود استفاده کنیم ؟

ادامه مطلب

چگونه در برنامه نویسی اندروید می توان آیدی موبایل را بدست آورد ؟

ادامه مطلب

چگونه در برنامه نویسی اندروید برنامه تماس بسازیم ؟

ادامه مطلب

چگونه در برنامه نویسی اندروید یک منو ساده بسازیم ؟

ادامه مطلب

چگونه در برنامه نویسی اندروید از برنامه اسکرین شات بگیریم ؟

ادامه مطلب

چگونه می توان در اندروید RTL یا LTR صفحه را ثابت کرد ؟

ادامه مطلب

چگونه می توان در اندروید حالت افقی (landscape) را غیر فعال کرد ؟

ادامه مطلب

آموزش استفاده از دیتابیس آماده در پروژه اندرویدی

ادامه مطلب

دانلود سورس کد تمامی نسخه های تلگرام + فایل های نصبی

ادامه مطلب

دانلود کتابخانه GSON برای اندروید + پروژه

ادامه مطلب

دانلود سورس کد اپلیکیشن آموزش زبان انگلیسی + فایل APK

ادامه مطلب

چگونه نگذاریم در آغاز اکتیویتی ، EditText فوکوس را بدست آورد ؟

ادامه مطلب

چگونه کیبورد پیش فرض اندروید (Soft Keyboard) را پنهان کرده یا ببندیم ؟

ادامه مطلب

چرا سرعت مجازی ساز اندروید کم است و چگونه می توان سرعت آنرا افزایش داد ؟

ادامه مطلب

تفاوت بین واحد های اندازه گیری "px" , "dp" , "dip" و "sp" چیست ؟

ادامه مطلب

دانلود سورس کد اپلیکیشن آهنگ سازی برای اندروید + فایل APK

ادامه مطلب

دانلود سورس کد اپلیکیشن هواشناسی برای اندروید + فایل APK

ادامه مطلب

× برای نظر گذاشتن یا پاسخ دادن به سوالات باید در سایت عضو باشید !

برای حمایت از ما روی بنر های زیر کلیک کنید .

برای سفارش تبلیغات به ما ایمیل بزنید .

×

ارتباط با ما