رفتن به مطلب
برای استفاده از انجمن و عضـویت کلیک کنید.

AnswerCenter

مرکز پاسخگویی به سوالات برنامه نویسی

درخواست سفارش پروژه

اطلاعیه

کاربر گرامی

به انجمن برنامه نویسی AnswerCenter.ir خوش آمدید

 برای استفاده از تمامی امکانات سایت لطفا در انجمن عضو شوید


محمدرضا شاهپیری

دریافت کتابخانه PersianFileProvider (بسیار کاربردی و مهم)

پست های پیشنهاد شده

محمدرضا شاهپیری    3,819

مدیر کل سایت

کتابخانه PersianFileProvider (بسیار کاربردی و مهم)


*****نسخه 2 اضافه شد.****

لینک آموزش نسخه 2

با سلام خدمت همه دوستان.

همونجور که مطلع هستید نسخه های جدید اندروید محدودیتهای زیادی رو برای انتخاب و کلا کار با فایلها اعمال کرده. در نسخه های جدید دیگه انتخاب و مدیریت فایلها فقط از طریق fileprovider انجام میشه.

کتابخونه ای هست که همه ی دوستان درخواست داشتن و برای راحتی دوستان آماده شده. امیدوارم لذت ببرید.♥

نحوه استفاده . ابتدا به منیفست کد زیر رو اضافه کنید.

AddApplicationText(<provider
             android:name="android.support.v4.content.FileProvider"
              android:authorities="$PACKAGE$.provider"
              android:exported="false"
              android:grantUriPermissions="true">
              <meta-data
                  android:name="android.support.FILE_PROVIDER_PATHS"
                 android:resource="@xml/provider_paths" />
         </provider>)
AddApplicationText(<activity android:name="com.fileprovider.util.PermissionActivity"/>)

حالا مثلا برای اشتراک گذاری فایل به صورت زیر استفاده کنید.

Public Sub ShareFile(FileName As String,DataType As String)
	Dim i As Intent
	i.Initialize(i.ACTION_SEND, "")
	i.SetType(DataType)
	Dim fil As PersianFileProvider
	Dim j As JavaObject = i
	Dim uri As Uri=fil.GetUriFromFile(File.DirRootExternal&"/Download/"&FileName)
	j.RunMethod("putExtra", Array("android.intent.extra.STREAM", uri))
	i.WrapAsIntentChooser("به اشتراک بگذارید !")
	StartActivity(i)
End Sub

 


 

  • پسندیدن 3
  • تشکر 3

به اشتراک گذاری این ارسال


لینک به ارسال
به اشتراک گذاری در سایت های دیگر
Foruta_an    107

کاربر رو به رشد

 

در 3 دقیقه قبل، محمدرضا شاهپیری گفته است :

 

سلام

ممنون که همیشه بموقع با رفع مشکلات ظاهر میشید

اگه لطف کنید همین رو به کتابخانه زیر اضافه کنید ممنونتون میشیم

 

به اشتراک گذاری این ارسال


لینک به ارسال
به اشتراک گذاری در سایت های دیگر
محمدرضا شاهپیری    3,819

مدیر کل سایت

در 21 دقیقه قبل، ForI گفته است :

 

سلام

ممنون که همیشه بموقع با رفع مشکلات ظاهر میشید

اگه لطف کنید همین رو به کتابخانه زیر اضافه کنید ممنونتون میشیم

 

اضافه شد عزیز. نسخه جدید رو دریافت کنید.

  • تشکر 1

به اشتراک گذاری این ارسال


لینک به ارسال
به اشتراک گذاری در سایت های دیگر
Foruta_an    107

کاربر رو به رشد

در 23 ساعت قبل، محمدرضا شاهپیری گفته است :

اضافه شد عزیز. نسخه جدید رو دریافت کنید.

سپاس

مهندس جان اگه امکانش هست انتخاب عکس از گالری رو هم اضافه کنید چون در نسخه های بالای اندروید از طریق uri مشکل داره

به اشتراک گذاری این ارسال


لینک به ارسال
به اشتراک گذاری در سایت های دیگر
mehdi.m    157

کاربر رو به رشد

سلام جناب شاهپیری خسته نباشید
بنده از این کتابخونه  استفاده کردم
میخوام باهاش تصویر زمینه ست کنم اما توی کدش مشکل دارم ممنون میشم شما یه نگاه بندازید و اگه میشه کدش رو برای این لیب بدید

این اینتنت معمولی هستش که uri رو از نوع string میگیره

      

Dim i As Intent
Dim uri As String
uri= "file://" &path 
i.Initialize("android.intent.action.ATTACH_DATA",uri)            
i.SetType ("image/*")
StartActivity(i)

این کد اینتنت توی اندروید 9 کار نمیکنه و به uri گیر میده

به اشتراک گذاری این ارسال


لینک به ارسال
به اشتراک گذاری در سایت های دیگر
محمدرضا شاهپیری    3,819

مدیر کل سایت

در 10 ساعت قبل، mehdi.m گفته است :

 

به صورت زیر هست. کتابخونه جاواآبجکت رو هم تیک بزنید

Dim intent As Intent
Dim prf As PersianFileProvider
intent.Initialize("android.intent.action.ATTACH_DATA","")
Dim jo As JavaObject=intent
jo.RunMethod("setData", Array(prf.GetUriFromFile(File.DirRootExternal&"/img.jpg")))
intent.SetType("image/*")
StartActivity(intent)

 

  • پسندیدن 1

به اشتراک گذاری این ارسال


لینک به ارسال
به اشتراک گذاری در سایت های دیگر
mehdi.m    157

کاربر رو به رشد

در در 9 شهریور 1398 در 22:42، محمدرضا شاهپیری گفته است :

به صورت زیر هست. کتابخونه جاواآبجکت رو هم تیک بزنید


Dim intent As Intent
Dim prf As PersianFileProvider
intent.Initialize("android.intent.action.ATTACH_DATA","")
Dim jo As JavaObject=intent
jo.RunMethod("setData", Array(prf.GetUriFromFile(File.DirRootExternal&"/img.jpg")))
intent.SetType("image/*")
StartActivity(intent)

 

ممنون از شما اما خطا میده

image.png

به اشتراک گذاری این ارسال


لینک به ارسال
به اشتراک گذاری در سایت های دیگر
sorena.king.24    8

کاربر عادی

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

ممنون از کتابخانه خیلی بی نظری که درست کردین♥

مشکلم که اشتراک گذاری فایل بود حل شد

فقط نفهمیدم اون خط uri چی بود گذاشتین 

من پاکش کردم اینطوری نوشتم حل شد

Public Sub ShareFile(FileName As String,DataType As String)
		
	Dim i As Intent
	i.Initialize(i.ACTION_SEND, "")
	i.SetType(DataType)
	Dim fil As PersianFileProvider
	Dim j As JavaObject = i
	j.RunMethod("putExtra", Array("android.intent.extra.STREAM", fil.GetUriFromFile(File.DirRootExternal&"/"&FileName)))
	i.WrapAsIntentChooser("به اشتراک گذاری فایل")
	StartActivity(i)
	
End Sub

فقط من دوتا مشکل دارم

یکی برای ساخت پوشه که من از کد fil.mkDir استفاده کردم که هیچ کاری نکرد،من فکر میکنم این کد مسیرو چک میکنه میگه وجود داره یا نه

دوم اینکه من میخوام یا این کتابخانه یه کپی از DirInternal (داخل برنامه ام )بگیرم بریزم داخل خود DirRootExternal (همون حافظه گوشی ) ولی هرکاری کردم نشد فقط میشه فایل هارو همون حافظه گوشی جا به جا یا کپی کنم یا شایدم من بلد نیستم

ممنون میشم در این دو مورد کمک کنید خیلی نیاز دارم

به اشتراک گذاری این ارسال


لینک به ارسال
به اشتراک گذاری در سایت های دیگر
محمدرضا شاهپیری    3,819

مدیر کل سایت

در 20 ساعت قبل، sorena.king.24 گفته است :

یکی برای ساخت پوشه که من از کد fil.mkDir استفاده کردم که هیچ کاری نکرد،من فکر میکنم این کد مسیرو چک میکنه میگه وجود داره یا نه

دوم اینکه من میخوام یا این کتابخانه یه کپی از DirInternal (داخل برنامه ام )بگیرم بریزم داخل خود DirRootExternal (همون حافظه گوشی ) ولی هرکاری کردم نشد فقط میشه فایل هارو همون حافظه گوشی جا به جا یا کپی کنم یا شایدم من بلد نیستم

ممنون میشم در این دو مورد کمک کنید خیلی نیاز دارم

در مورد دستور mkDir : این دستور برای ساختن پوشه هست. دقت داشته باشید که برای حافظه داخلی حتما باید دسترسی رانتایم نوشتن بر روی حافظه رو بگیرید(android.permission.WRITE_EXTERNAL_STORAGE) و برای حافظه مموری کارد هم باید با دستور pr.GetSdCardPermition دسترسی نوشتن رو بگیرید. در غیر این صورت پوشه ساخته نمیشه.

اما سوال دوم: کپی کردن پوشه توی یه پوشه دیگه  و خیلی از امکانات دیگه رو انشالا تو آپدیت بعدی لحاظ میکنیم.

  • پسندیدن 2

به اشتراک گذاری این ارسال


لینک به ارسال
به اشتراک گذاری در سایت های دیگر
sorena.king.24    8

کاربر عادی

در در 2 آذر 1398 در 21:01، محمدرضا شاهپیری گفته است :

در مورد دستور mkDir : این دستور برای ساختن پوشه هست. دقت داشته باشید که برای حافظه داخلی حتما باید دسترسی رانتایم نوشتن بر روی حافظه رو بگیرید(android.permission.WRITE_EXTERNAL_STORAGE) و برای حافظه مموری کارد هم باید با دستور pr.GetSdCardPermition دسترسی نوشتن رو بگیرید. در غیر این صورت پوشه ساخته نمیشه.

اما سوال دوم: کپی کردن پوشه توی یه پوشه دیگه  و خیلی از امکانات دیگه رو انشالا تو آپدیت بعدی لحاظ میکنیم.

دستور mkDir راهشو یاد گرفتم چطوری میزنن:)

فقط شما چک کردن پوشه رو که وجود دارد یا نه فقط کد مخصوص به حافظه مموری دادین برا چک کردن حافظه داخلی چیزی لحاظ نبود

برای چک کردن حافظه داخلی با خود file برنامه کار کنم به نظرتون مشکلی پیش نمیاد روی api26 به بالا

راستی برای اپدیت بعدی لحظه شماری میکنم

کتابخانه فوق العادیه واقعا

 

 

 

به اشتراک گذاری این ارسال


لینک به ارسال
به اشتراک گذاری در سایت های دیگر

Join the conversation

You can post now and register later. If you have an account, sign in now to post with your account.
Note: Your post will require moderator approval before it will be visible.

مهمان
ارسال پاسخ به این موضوع ...

×   شما در حال چسباندن محتوایی با قالب بندی هستید.   حذف قالب بندی

  تنها استفاده از 75 اموجی مجاز می باشد.

×   لینک شما به صورت اتوماتیک جای گذاری شد.   نمایش به عنوان یک لینک به جای

×   محتوای قبلی شما بازگردانی شد.   پاک کردن محتوای ویرایشگر

×   شما مستقیما نمی توانید تصویر خود را قرار دهید. یا آن را اینجا بارگذاری کنید یا از یک URL قرار دهید.


×
×
  • جدید...