قطعه کد اندروید اشتراک گذاری برنامه (ارسال فایل APK یک برنامه)

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

بدین منظور می‌توان از متد زیر استفاده کرد:

public static boolean shareApp(Context context, String packageName, String title) {
    try {
        StrictMode.VmPolicy.Builder builder = new StrictMode.VmPolicy.Builder();
        StrictMode.setVmPolicy(builder.build());
        PackageManager pm = context.getPackageManager();
        ApplicationInfo ai = pm.getApplicationInfo(packageName, 0);
        File srcFile = new File(ai.publicSourceDir);
        Intent share = new Intent();
        share.setAction(Intent.ACTION_SEND);
        share.setType("application/vnd.android.package-archive");
        share.putExtra(Intent.EXTRA_STREAM, Uri.fromFile(srcFile));
        context.startActivity(Intent.createChooser(share, title));
        return true;
    } catch (Exception e) {
        return false;
    }
}

این متد، با دریافت یک context، نام پکیج مورد نظر و عنوان دیالوگ اشتراک گذاری، عملیات را برای شما انجام داده و در صورت موفقیت آمیز بودن، مقدار true را برمی‌گرداند.

دو خط اول در این کد که با StrictMode نوشته شده‌آند، جهت رفع خطای زیر در اندروید API 24 به بالا می‌باشند:

exposed beyond app through ClipData.Item.getUri()

مثال در یک اکتیویتی

در این مثال، اپلیکیشن خود را به اشتراک می‌گذاریم:

if (!shareApp(this, getPackageName(), "اشتراک گذاری نرم افزار")) {
    Toast.makeText(this, "ناموفق", Toast.LENGTH_LONG).show();
}

پاسخ دهید

نشانی ایمیل شما منتشر نخواهد شد. بخش‌های موردنیاز علامت‌گذاری شده‌اند *

cp-codfk

نظرات ثبت شده 3 دیدگاه

    1. شیدا کاربر مهمان گفت:

      ببخشید من یک برنامه در گوشی به زبان c نوشته‌ام.
      حالا چطور می‌تونم این کد رو به apk تبدیل کنم؟
      اگر زحمتی نیست جواب را برایم بفرستید

      12
    2. saeid کاربر مهمان گفت:

      سلام با اشتراک کردن به جای اسم برنامه اونو به اسم base.apkاشتراک میذاره چجوری باید این اسم رو تغییر داد؟

      22
      1. هادی اکبرزاده مدیر سایت گفت:

        سلام. بایستی ابتدا فایل کپی شه وگرنه تاجایی که اطلاع دارم امکانش وجود نداره.

توضیحات پیشنهادی نظرات اشتراک