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

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

ahm_android  8 سال پیش  7 سال پیش
+1 0

باسلام 

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

  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)));
}

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