بروز خطا
[message]
اشتراک در سوال
رای ها
[dataList]
(share)اشتراک فایل apk برنامه در داخل برنامه
باسلام
من با جستجویی که توی انجمن داشتم این کد رو پیدا کردم.
public static void sendAppItself(Activity paramActivity, String paramStringToastMsg) throws IOException { Toast.makeText(paramActivity, paramStringToastMsg, Toast.LENGTH_LONG).show(); PackageManager pm = paramActivity.getPackageManager(); ApplicationInfo appInfo; try { appInfo = pm.getApplicationInfo(paramActivity.getPackageName(), PackageManager.GET_META_DATA); Intent sendBt = new Intent(Intent.ACTION_SEND); // NOT THIS! sendBt.setType("application/vnd.android.package-archive"); sendBt.setType("*/*"); sendBt.putExtra(Intent.EXTRA_STREAM, Uri.parse("file://" + appInfo.publicSourceDir)); Log.i("LOG", "PACKAGEDIR: " + appInfo.publicSourceDir); paramActivity.startActivity(Intent.createChooser(sendBt, "Share apk using")); // paramActivity.startActivity(sendBt);. } catch (NameNotFoundException e1) { e1.printStackTrace(); } }
این کد در گوشی واقعی جواب نمیده.اسم پروژه من هست ActionTeacher ولی توی این کد دنبال فایل action_teacher-1.apk میگرده که توی گوشی واقعی چنین اسمی من پیدا نکردم ولی توی امیلاتو ایکلیپس هست .عکس زیر از گوشی گرفتم به پیام توجه فرمایید.
بنظرتون مشکل کجاست؟
برای این سوال 1 پاسخ وجود دارد.
پاسخ به سوال
Andronymous
7 سال پیش
+1
0
با این کد میتونی به فایل apk برنامت دسترسی پیدا کنی و share کنی :
public void getApkFile() {
final Intent mainIntent = new Intent(Intent.ACTION_MAIN, null);
mainIntent.addCategory(Intent.CATEGORY_LAUNCHER);
List<ResolveInfo> apps = getPackageManager().queryIntentActivities(mainIntent, 0);
for (ResolveInfo info : apps) {
if (info.activityInfo.packageName.equals(getPackageName())) {
G.log("LOG", "apkFile :" + info.activityInfo.packageName);
File apkFile = new File(info.activityInfo.applicationInfo.publicSourceDir);
shareApkFile(apkFile);
}
}
}
public void shareApkFile(File file) {
Intent sendBt = new Intent(Intent.ACTION_SEND);
sendBt.setType("application/*");
sendBt.putExtra(Intent.EXTRA_STREAM, Uri.fromFile(apkFile));
this.startActivity(Intent.createChooser(sendBt, getResources().getString(R.string.shareUsing)));
}
پاسخگویی و مشاهده پاسخ های این سوال تنها برای اعضای ویژه سایت امکان پذیر است .
چنانچه تمایل دارید به همه بخش ها دسترسی داشته باشید میتوانید از این بخش لایسنس این آموزش را خریداری نمایید .