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

اشتراک تصویر

رضا  10 سال پیش  10 سال پیش
0 0

سلام بنده در برنامه قصد اشتراک برخی تصاویر رو دارم..کد زیر رو قرار دادم و همچنین در manifest 

با کلیک روی دکمه وارد مثلا تلگرام میشم ولی تصویرم نمیاد...لطفا راهنمایی بفرمایید.تصاویر بنده در فرگمنت می باشند...

 Intent shareIntent = new Intent();
shareIntent.setAction(Intent.ACTION_SEND);
shareIntent.setType("image/png");
Uri uri = Uri.parse("android.resource://com.echoghahraman.sheykhzadeh.reza/" + R.drawable.ic_launcher);
shareIntent.putExtra(Intent.EXTRA_STREAM, uri);
shareIntent.putExtra(Intent.EXTRA_TEXT, "Hello, This is test Sharing");
startActivity(Intent.createChooser(shareIntent, "Send your image"));

.................................

<uses-permission android:name="android.permission.WRITE_EXTERNAL_STORAGE" />
<uses-permission android:name="android.permission.READ_EXTERNAL_STORAGE" />
<uses-permission android:name="android.permission.INTERNET"/>


<data android:mimeType="image/*" />



0 0
دوستان لطفا راهنمایی.. (10 سال پیش)
 برای این سوال 2 پاسخ وجود دارد.
پاسخ به سوال 
رضا  10 سال پیش
+1 0

دوستان گرامی مشکلم حل شد.اگه شما هم با این مشکل رو به رو شدید از طریق کد زیر میتوانید اشتراک تصویر داشته باشید.

 File root = android.os.Environment.getExternalStorageDirectory();
File dir = new File(root.getAbsolutePath() + "/myFolder");
dir.mkdirs(); // build directory
Random generator = new Random();
int n = 10000;
n = generator.nextInt(n);
String fileName = "Image-" + n + ".png";
File file = new File(dir, fileName);
if (file.exists())
file.delete();

try {
FileOutputStream outStream = new FileOutputStream(file);
InputStream is;
Bitmap bitmap;
is = getActivity().getResources().openRawResource(R.drawable.gh);
bitmap = BitmapFactory.decodeStream(is);
try {
is.close();
is = null;
}
catch (IOException e) {}
bitmap.compress(Bitmap.CompressFormat.JPEG, 90, outStream);
outStream.flush();
outStream.close();
}
catch (FileNotFoundException e) {
e.printStackTrace();
}
catch (IOException e) {
e.printStackTrace();
}
Uri outputFileUri = Uri.fromFile(file);
Intent intent = new Intent(Intent.ACTION_SEND);
intent.addFlags(Intent.FLAG_ACTIVITY_CLEAR_WHEN_TASK_RESET);
intent.addFlags(Intent.FLAG_GRANT_READ_URI_PERMISSION);
intent.setType("image/png");
intent.putExtra(Intent.EXTRA_STREAM, outputFileUri);
startActivity(Intent.createChooser(intent, "Share this image via"));
پاسخ به سوال 
مسعود فرمانی  10 سال پیش
+1 0

میتونید برای به اشتراک گذاری فایل ها(مثل عکس) با دیگر برنامه ها از کلاس ContentProvider استفاده کنید

ابتدا کلاس ContentProvider  را extend کنید

class MyContentProvider extends ContentProvider

متدهایی که ازتون میخواد override کنید رو خالی بذارید

کدهای زیر رو در کلاس MyContentProvider عینا کپی کنید

 @Override
public AssetFileDescriptor openAssetFile(Uri uri, String mode) throws FileNotFoundException {
AssetManager am = getContext().getAssets();
String file_name = uri.getLastPathSegment();
if(file_name == null)
throw new FileNotFoundException();
AssetFileDescriptor afd = null;
try {
afd = am.openFd(file_name);
} catch (IOException e) {
e.printStackTrace();
}
return afd;//super.openAssetFile(uri, mode);
}

کدهای زیر رو در منیفست،بین تگ های application قرار بدید

 <provider
android:authorities="نام پکیج برنامتون"
android:name=".MyContetntProvider"
android:grantUriPermissions="true"/>

فایل تصویری که میخواید به اشتراک بذارید رو در پوشه assets پروژتون قرار بدید

کدهای مربوط به اینتنت رو به صورت زیر استفاده کنید

 Uri uri = Uri.parse("content://نام پکیج برنامتون/filename.jpg");
Intent intent = new Intent();
intent.setAction(Intent.ACTION_SEND);

intent.putExtra(Intent.EXTRA_STREAM, uri);
intent.setType("image/jpeg");
intent.setPackage("org.telegram.messenger");
0 0
ممنون از راهنماییتون... (10 سال پیش)

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