رفتن به مطلب
  • 0

اضافه شدن برنامه به لیست اشتراک گذاری اصلی گوشی


elysium1368

سوال

سلام بر دوستان گلم. چطوری میشه توی گالری یک عکس یا یک فیلم رو وقتی روی گزینه share بزنیم برنامه ما هم توی لیستش باشه؟ مثل واتساپ یا تلگرام. و بعدش از طریق برنامه بتونیم اون رو ارسال کنیم به اون جایی که میخوایم!؟ 

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

6 پاسخ به این سوال تاکنون داده شده است

ارسال‌های توصیه شده

یه توضیح در مورد URI میدید ؟؟

همون آدرس کانتنت رو میگن .

 

@, ممنون از شما آقا امین عزیز. ولی این کار که آدرس قابل استفاده ای رو برنمیگردونه!؟ چجوری میتونم یک آدرس دقیق و صحیح و قابل استفاده برگردونم؟

 

از طریق این ساب آدرس صحیح رو میتونین بگیرین ، کد زیر عکس رو توی بکگراند اکتیویتی نشون میده  (کتابخانه های تیک خورده : SQL,ContentResolver)

Sub Activity_Resume
	Try
Dim int1 As Intent=Activity.GetStartingIntent
Dim sContent As String = int1.ExtrasToString.SubString(int1.ExtrasToString.IndexOf("content://")).Replace("}", "").Replace("]", "")
Activity.SetBackgroundImage(LoadBitmap("",GetPathFromContentResult(sContent)))
Catch
	ToastMessageShow(LastException.Message,False)
	End Try
End Sub

Sub GetPathFromContentResult(UriString As String) As String
Try
  Dim Cursor1 As Cursor
  If UriString.StartsWith("/") Then Return UriString 'vaqti karbar file ro az filemanager entekhab kard
  Dim Uri1 As Uri
  Dim Proj() As String = Array As String("_data")
  Dim cr As ContentResolver
  cr.Initialize("")
  If UriString.StartsWith("content://com.android.providers.media.documents") Then
  Dim i As Int = UriString.IndexOf("%3A")
  Dim id As String = UriString.SubString(i + 3)
  Uri1.Parse("content://media/external/images/media")
  Cursor1 = cr.Query(Uri1, Proj, "_id = ?", Array As String(id), "")
  Else
  Uri1.Parse(UriString)
  Cursor1 = cr.Query(Uri1, Proj, "", Null, "")
  End If
  Cursor1.Position = 0
  Dim res As String
  res = Cursor1.GetString("_data")
  Cursor1.Close
  Return res
Catch
  ToastMessageShow(LastException.Message,True)
End Try
End Sub
لینک ارسال
به اشتراک گذاری در سایت های دیگر

شما باید intent filter برای برنامتون بزارید ، برای چیزی که میخواین  این کد رو توی Manifest Editor  اضافه کنید :

AddActivityText(Main, 
<intent-filter>
    <action android:name="android.intent.action.SEND" />
    <category android:name="android.intent.category.DEFAULT" />
    <data android:mimeType="image/*" />
</intent-filter>)

به جای main اسم اکتیویتی  که میخواین اجرا شه رو بزارید  و بعد توی برنامه میتونین آدرس عکس رو از Intent ورودی بگیرید : 

Sub Activity_Resume
   Dim In As Intent 
   In = Activity.GetStartingIntent 
   
   If In.ExtrasToString.Contains("no extras")=False Then
 ToastMessageShow("Address: " & In.ExtrasToString ,True)
      '' inja mitunin address (uri) axe morede nazaro az intent begirin
   End If
End Sub

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

@, ممنون از شما آقا امین عزیز. ولی این کار که آدرس قابل استفاده ای رو برنمیگردونه!؟ چجوری میتونم یک آدرس دقیق و صحیح و قابل استفاده برگردونم؟

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

@, آقای شاهدی عزیز خیلی ممنون از پاسختون. خیلی کمکم کرد. حالا یه سوالی که جواب خوبی براش پیدا نکردم اینه که چجوری میتونم هم ویدئو و هم عکس رو هیتلر کنم؟ منظورم توی MIME تایپ هست. میشه دو نوع فایل گذاشت توی این قسمت؟ 

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

حل شد. چنتا شرط براش گذاشتم مشکلم حل شد. مرسی از دوستان بابت راهنمایی  :tashvigh:  :ok:  :gol:

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

بایگانی شده

این موضوع بایگانی و قفل شده و دیگر امکان ارسال پاسخ نیست.

  • کاربران آنلاین در این صفحه   0 کاربر

    • هیچ کاربر عضوی،در حال مشاهده این صفحه نیست.
×
×
  • اضافه کردن...