آموزش های این وب سایت به صورت رایگان در دسترس است. اطلاعات بیشتر
بروز خطا
   [message]
اشتراک در سوال
رای ها
[dataList]

قابلیت ارسال نرم افزار در درون نرم افزار

jafar  12 سال پیش  10 سال پیش
+18 0

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

هر کی میدونه  راهشو بگه ما هم بدونیم

 

 برای این سوال 6 پاسخ وجود دارد.
پاسخ به سوال 
مجتبی یگانه  12 سال پیش
+2 0

برنامه رو در assets قرار بده ، کپی کن تو کارت حافظه ارسال کن :) 

+1 0
اینکار باعث افزایش حجم برنامه میشه (12 سال پیش)
پاسخ به سوال 
طاهر  12 سال پیش
+1 0

روش خیلی راحت اینه که فایل برنامه رو از قسمت پوشه data برای دیگران ارسال کنی :دی

پاسخ به سوال 
Spirit  12 سال پیش
+32 0

// ارسال برنامه از طرق مختلف
public static void shareApp (Context context , String title) {
try {
PackageManager pm = context.getPackageManager();
ApplicationInfo ai = pm.getApplicationInfo(context.getPackageName(), 0);
File srcFile = new File(ai.publicSourceDir);
Intent share = new Intent();
share.setAction(Intent.ACTION_SEND);
share.setType("application/*");
share.putExtra(Intent.EXTRA_STREAM, Uri.fromFile(srcFile));
context.startActivity(Intent.createChooser(share, title));
} catch (Exception e) {
}
}

 

0 0
برای بار سوم اصلاح شد (12 سال پیش)
0 0
بالا برای اون دسته از دوستانی که ندیدن ! ، اشتراک گذاری فایل APK برنامه با بلوتوث و.. (12 سال پیش)
0 0
دوست عزیز این activity باید چی تعریفش کنیم؟ نمیشناستش؟ (11 سال پیش)
0 0
@Rooh در کل اونجا یه Context باید باشه، اگه کد رو توی یک activity نوشتید لازم نیست پاکش کنید یا بجاش از this استفاده کنید - اگه جایی نوشتید که دسترسی به Context وجود نداره هم باید یه Context به متد یا کلاسش بفرستید. (11 سال پیش)
0 0
ممنون. اما میشه یه توضیحی درمورد قسمت های مختلفش بدی تا با چگونگی کارکردش هم آشنا بشیم؟ (11 سال پیش)
0 0
spirit من می خوام با کلیک روی باتتان مورد نظر گزینه های شیر بیاد. حالا متن بالا رو در قسمت set on click می ذارم ولی cash میکنه (11 سال پیش)
+1 0
5 ساعت پیش کد رو کمی تغییر دادم، الان یه متد static هست که باید بزاری توی یه کلاس و بعد صداش بزنی، دو تا ورودی داره یکی Context که تو activity میشه از this استفاده کرد یا G.context و دومی هم یه رشته هست برای عنوان دیالوگ. (11 سال پیش)
0 0
منم همین کارو کردم. برای context ها G. زدم و برای title یک String title; تعریف کردم و بقیه خط ها رو در set on click ریختم. (11 سال پیش)
پاسخ به سوال 
MeY3am  11 سال پیش
+1 0

Rooh @ به این صورت در setOnClickListener باتن  کد رو استفاده کنید:

 btnShare.setOnClickListener(new OnClickListener() {

            @Override
            public void onClick(View v) {
                shareApp (G.context , "Share App") // or shareApp (ActivityName.this , "Share App")
} });

// ارسال برنامه از طرق مختلف public static void shareApp (Context context , String title) { try { PackageManager pm = context.getPackageManager(); ApplicationInfo ai = pm.getApplicationInfo(context.getPackageName(), 0); File srcFile = new File(ai.publicSourceDir); Intent share = new Intent(); share.setAction(Intent.ACTION_SEND); share.setType("application/*"); share.putExtra(Intent.EXTRA_STREAM, Uri.fromFile(srcFile)); context.startActivity(Intent.createChooser(share, title)); } catch (Exception e) { } }
0 0
با تشکر من یک باتن گزاشتم به نام btnshare و کد بالا رو در اکتیویتی مربوطه گزاشتم . اجرا شده ولی با کلیک روی باتن هیچ اتفاقی نمی افته ! کار دیگری هم نیازه ؟ فایل apk رو جایی بایید بزاریم ؟ پرمیژنی نیاز نیست ؟ ممنون (11 سال پیش)
پاسخ به سوال 
وحید  11 سال پیش
0 0

 

 view.findViewById(R.id.layShare).setOnClickListener(new OnClickListener() {

@Override
public void onClick(View arg0) {
String title = "hi";
try {
PackageManager pm = G.context.getPackageManager();
ApplicationInfo ai = pm.getApplicationInfo(G.context.getPackageName(), 0);
File srcFile = new File(ai.publicSourceDir);
Intent share = new Intent();
share.setAction(Intent.ACTION_SEND);
share.setType("application/*");
share.putExtra(Intent.EXTRA_STREAM, Uri.fromFile(srcFile));
G.context.startActivity(Intent.createChooser(share, title));
}
catch (Exception e) {
Toast.makeText(G.context, "کش کرد", Toast.LENGTH_LONG).show();
}

}
});
0 0
در پاسخ بالا براتون توضیح دادم! (11 سال پیش)
0 0
دقیقا متن شما رو زدم ولی cach می کنه. شاید نکته ای رو رعایت نکردم. آدرس فایلی چیزی نمی خواد؟ (11 سال پیش)
0 0
دوستان من هنوز مشکلم رفع نشده و کش می کنه. (11 سال پیش)
0 0
دوستان لطفا بگید این catch چه چیزی رو می رسونه؟ یعنی در صورت catch می کنه؟ (11 سال پیش)
0 0
اگه منظورتون کرش هستش که؛ کلاس G رو داخل مانیفست تعریف کردین؟ (11 سال پیش)
0 0
نه منظورم کرش نیست، منظورم Catch هست try catch . یعنی انجام نمی ده عملیات رو و می خواد کرش کنه که می ره قسمت catch رو اجرا میکنه. (11 سال پیش)
0 0
نیاز به پریمیشن نداره؟ (11 سال پیش)
0 0
سلام منم نتونستم نتیجه بگیرم نمیشه بیشتر توضیح بدید؟ (11 سال پیش)
پاسخ به سوال 
Saeed Mozaffari  11 سال پیش
0 0

این کد برای من جواب داد (فکر کنم از یکی از تاپیکهای همین جا کپی کرده بودم)

                PackageManager pm = getPackageManager();
String uri = null;
for (ApplicationInfo app: pm.getInstalledApplications(0)) {
if ( !((app.flags & ApplicationInfo.FLAG_UPDATED_SYSTEM_APP) == 1)) {
if ( !((app.flags & ApplicationInfo.FLAG_SYSTEM) == 1)) {
uri = app.sourceDir;
if (uri.contains(getPackageName())) {
break;
}
}
}
}
Intent intent = new Intent();
intent.setAction(Intent.ACTION_SEND);
intent.setType("application/vnd.android.package-archive");
intent.putExtra(Intent.EXTRA_STREAM, Uri.fromFile(new File(uri)));
startActivity(Intent.createChooser(intent, "اشتراک گذاری نرم افزار"));
0 0
فقط نمیدونم چرا اسم فایل ارسالی رو base مینویسه در هر صورت. کسی میدونه؟ (10 سال پیش)

پاسخگویی و مشاهده پاسخ های این سوال تنها برای اعضای ویژه سایت امکان پذیر است .
چنانچه تمایل دارید به همه بخش ها دسترسی داشته باشید میتوانید از این بخش لایسنس این آموزش را خریداری نمایید .