شاید بخواهید کاربران بتوانند از داخل نرمافزار شما، فایل 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(); }
ببخشید من یک برنامه در گوشی به زبان c نوشتهام.
حالا چطور میتونم این کد رو به apk تبدیل کنم؟
اگر زحمتی نیست جواب را برایم بفرستید
سلام با اشتراک کردن به جای اسم برنامه اونو به اسم base.apkاشتراک میذاره چجوری باید این اسم رو تغییر داد؟
سلام. بایستی ابتدا فایل کپی شه وگرنه تاجایی که اطلاع دارم امکانش وجود نداره.