بروز خطا
   [message]
اشتراک در سوال
رای ها
[dataList]
پرسش و پاسخ

(share)اشتراک فایل apk برنامه در داخل برنامه

مدیریت گفتگو
ahm_android 10 سال پیش
آخرین تغییر: 9 سال پیش

باسلام 

من با جستجویی که توی انجمن داشتم این کد رو پیدا کردم.

  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 9 سال پیش

با این کد میتونی به فایل 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)));
}

نظرات


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