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

اشتراک برنامه


MrMedia

سوال

سلام من میخواستم برنامه خوذم رو از داخل خود اپ به اشتراک بزارم
قبلا این کارو میکردم ولی در اندروید های 8 به بالا به مشکل بر می خورم
انجمن رو هم جستجو کردم مثل: https://answercenter.ir/topic/18383-اشتراک-گذاری-برنامه-در-داخل-خود-برنامه/
ولی در اندروید های بالا همون مشکل رو داره
آیا قطعه کد جاوایی و یا کد b4a هست که بتونم این مشکل رو حل کنم
ممنون

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

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

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

در در 23 شهریور 1398 در 18:36، Salar52 گفته است :

سلام

شما میتونین بجای توشتن این همه خط، از کتابخانه AriaLib استفاده کنید.

کافیه فقط دو خط پایین رو تو رویداد دلخواهتون قرار بدین.


Dim Aria As AriaLib

StartActivity(Aria.ShareApplication("PackageName" , "اشتراک گذاری با:"))

فقط بجای Pakagename نام بسته(PackageName) برنامه خودتون رو بذارین...

اینم خطا میده اگر sdk بالای 23 کامپایل کنی

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

در در 25 شهریور 1398 در 13:38، behnam_tr گفته است :

اینم خطا میده اگر sdk بالای 23 کامپایل کنی

من الان دارم با اندروید 7 کار می‌کنم که میشه Api25 خطایی هم نمیده.

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

سلام

ایجاد خطاها در هر زمان امکان داره رخ بده مثلا تو یه برنامه، کاربری سیستم عاملشو ارتقا داده بود و کد اشتراک گذاری برنامه باعث بسته شدن برنامه میشد. بهتره با کد زیر از این مشکلات پیشگیری کرد.

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

Try
	کد اشتراک برنامه
Catch
	ToastMessageShow("عدم حمایت دستگاه از این ویژگی",False)
End Try

 

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

در در 21 شهریور 1398 در 21:44، alimo1999 گفته است :

سلام وقت بخیر

کد زیر رو داخل سرویس استاتر برنامه خود بگذارید درست میشه

ممنون چک میکنم حتما
 

در در 23 شهریور 1398 در 18:36، Salar52 گفته است :

سلام

شما میتونین بجای توشتن این همه خط، از کتابخانه AriaLib استفاده کنید...

خب اینکارو میشه مستقیم هم انجام داد ولی چه کدها و چه کتابخونه های موجود در تندروید بالاتر کار نمی کنند

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

در 2 ساعت قبل، MrMedia گفته است :

سلام من میخواستم برنامه خوذم رو از داخل خود اپ به اشتراک بزارم
قبلا این کارو میکردم ولی در اندروید های 8 به بالا به مشکل بر می خورم
انجمن رو هم جستجو کردم مثل: https://answercenter.ir/topic/18383-اشتراک-گذاری-برنامه-در-داخل-خود-برنامه/
ولی در اندروید های بالا همون مشکل رو داره
آیا قطعه کد جاوایی و یا کد b4a هست که بتونم این مشکل رو حل کنم
ممنون

دوست عزیز چه خطایی دریافت میکنید؟

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

(Exception) java.lang.Exception:  android.os.FileUriExposedException: file:///storage/emulated/0/Android/data/b4a.example/files/sharedB4A Example.apk exposed beyond app through ClipData.Item.getUri()

من Fileprovider رو از این پست گرفتم https://answercenter.ir/topic/23252-مشکل-تداخل-پوشه-و-fileprovider/
ولی نمی دونم چطور خود اپ رو با یک متن به اشتراک بزارم

 

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

الان از این کد ها استفاده میکنم

Sub Share
	Dim AppDir As String = GetAppDir(Application.PackageName)
	Dim App_Labal As String = Application.LabelName &".apk"

	Private sharedFolder As String
	sharedFolder = Starter.rp.GetSafeDirDefaultExternal("shared")

	File.Copy("", AppDir , sharedFolder , App_Labal)

	Dim intent As Intent
	intent.Initialize(intent.ACTION_SEND,"")
	intent.SetType("file/*")
	intent.putExtra("android.intent.extra.TEXT", "put your text here")
	intent.PutExtra("android.intent.extra.STREAM", CreateFileProviderUri(sharedFolder, App_Labal))
End Sub

Sub CreateFileProviderUri (Dir As String, FileName As String) As Object
	Dim FileProvider As JavaObject
	Dim context As JavaObject
	context.InitializeContext
	FileProvider.InitializeStatic("android.support.v4.content.FileProvider")
	Dim f As JavaObject
	f.InitializeNewInstance("java.io.File", Array(Dir, FileName))
	Return FileProvider.RunMethod("getUriForFile", Array(context, Application.PackageName & ".provider", f))
End Sub

Sub GetAppDir(Package As String) As String
	Dim r1,r2 As Reflector,obj As Object
	r1.Target = r1.GetContext
	r1.Target = r1.RunMethod("getPackageManager")
	r1.Target = r1.RunMethod3("getPackageInfo", Package, "java.lang.String", 0x00000001, "java.lang.int")
	obj = r1.GetField("applicationInfo")
	Try
		r2.Target = obj
		Return r2.GetField("sourceDir")
	Catch
		Return ""
	End Try
End Sub

ولی این خطا رو دریافت میکنم
 

(Exception) java.lang.Exception:  java.lang.reflect.InvocationTargetException


 

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

سلام وقت بخیر

کد زیر رو داخل سرویس استاتر برنامه خود بگذارید درست میشه

#if java

import android.os.StrictMode;

public void _onCreate() { //@cafetoseeh

if (android.os.Build.VERSION.SDK_INT >= 18) {

StrictMode.VmPolicy.Builder builder = new StrictMode.VmPolicy.Builder();

StrictMode.setVmPolicy(builder.build());

//cafetoseeh.ir

builder.detectFileUriExposure();

}}

#End

موفق باشید

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

سلام

شما میتونین بجای توشتن این همه خط، از کتابخانه AriaLib استفاده کنید.

کافیه فقط دو خط پایین رو تو رویداد دلخواهتون قرار بدین.

Dim Aria As AriaLib

StartActivity(Aria.ShareApplication("PackageName" , "اشتراک گذاری با:"))

فقط بجای Pakagename نام بسته(PackageName) برنامه خودتون رو بذارین...

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

بایگانی شده

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

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

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