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

مشکل در ارسال apk از داخل برنامه (حل شد)

مدیریت گفتگو
sagheb95 11 سال پیش
آخرین تغییر: 11 سال پیش

من برای ارسال فایل apk از داخل برنامه از این کد استفاده می کنم . اما نمیدونم چرا با shareapp خطا میده..

  btnShare.setOnClickListener(newOnClickListener(){
@Override

publicvoid onClick(View v){

shareApp (G.context ,"Share App")// or shareApp (ActivityName.this , "Share App")

}

});

// ارسال برنامه از طرق مختلف

publicstaticvoid shareApp (Context context ,String title){

try{

PackageManager pm = context.getPackageManager();

ApplicationInfo ai = pm.getApplicationInfo(context.getPackageName(),0);

File srcFile =newFile(ai.publicSourceDir);

Intent share =newIntent();

share.setAction(Intent.ACTION_SEND);

share.setType("application/*");

share.putExtra(Intent.EXTRA_STREAM,Uri.fromFile(srcFile));

context.startActivity(Intent.createChooser(share, title));

}catch(Exception e){

}

}

نظرات

پاسخ‌ها 4

mghaffari 11 سال پیش

من برای ارسال apk از کد زیر استفاده میکنم مشکلی هم ندارم:

 try{ 
    ArrayList<Uri> uris = new ArrayList<Uri>();
    Intent sendIntent = new Intent(Intent.ACTION_SEND_MULTIPLE);
    sendIntent.setType("application/vnd.android.package-archive");
    uris.add(Uri.fromFile(new File(getApplicationInfo().publicSourceDir)));
    sendIntent.putParcelableArrayListExtra(Intent.EXTRA_STREAM, uris);
    startActivity(Intent.createChooser(sendIntent, null));
 
 
}catch(Exception e){
 
    ArrayList<Uri> uris = new ArrayList<Uri>();
    Intent sendIntent = new Intent(Intent.ACTION_SEND_MULTIPLE);
    sendIntent.setType("application/zip");
    uris.add(Uri.fromFile(new File(getApplicationInfo().publicSourceDir)));
    sendIntent.putParcelableArrayListExtra(Intent.EXTRA_STREAM, uris);
    startActivity(Intent.createChooser(sendIntent, null));
}

نظرات

mghaffari 11 سال پیش

از این هم میتونی استفاده کنی:

  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.v("PACKAGEDIR: ", appInfo.publicSourceDir);
            paramActivity.startActivity(Intent.createChooser(sendBt, "Share image using"));
            // paramActivity.startActivity(sendBt);
        }
        catch (NameNotFoundException e1) {
            e1.printStackTrace();
        }

    }

نظرات

sagheb95 11 سال پیش

این ارور رو میده 

نظرات

mghaffari 11 سال پیش
ارور اول رو اسم متد واسه static بودنش ه احتمالا جای درستی نذاشتیش ارور دوم هم واسه اینه که پارامتری ندادی بهش خیلی سخت نیست اگه میخوای برات یه sample از هر دوتا میزنم لینکش رو میذارم ببینی
sagheb95 11 سال پیش
ممنونم میشم اگر زحمتش رو بکشی و sample رو بزاری .
mghaffari 11 سال پیش
لینک اولی رو سایت درست نشون نداد، از لینک دومی استفاده کنید
sagheb95 11 سال پیش
خیلی ممنون.تشکر
sagheb95 11 سال پیش
دوست عزیز : mghaffari خیلی ممنون . توسط شما مشکلم حل . موفق باشی
وحید 11 سال پیش
دوست عزیز من مدیر نیستم ولی می تونید برای تشکر از لایک استفاده کنید.
وحید 11 سال پیش

لینک

 

این لینک رو برای این زدم که دوستان گیج نشن.

نظرات


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