آموزش برنامه نویسی اندروید (Android)
۴۱۹ آموزش
نمایش دسته بندی ها (۴۱۹ آموزش)

به اشتراک گذاری (share) یک فایل صوتی (مثلا mp3)، با استفاده از Intent ، در برنامه نویسی اندروید

فرض کنید که یک فایل صوتی در حافظه خارجی (External Storage) داریم و می خواهیم آن را با برنامه های دیگر به اشتراک بگذاریم (share)، برای این منظور، در ادامه، کدهایی را ارائه خواهیم داد که بر اساس استفاده از Intent می باشند، اما نکته مهم این است که برای استفاده از این روش، حتما باید فایل در حافظه خارجی (External Storage) قرار داشته باشد و چنانچه فایل در حافظه داخلی (Internal Storage) قرار داشته باشد، ممکن است به برخی برنامه ها ارسال شود، اما به برخی برنامه های دیگر، ارسال نگردد. بنابراین حتی اگر فایل ها در حافظه داخلی (Internal Storage) قرار دارند، ابتدا باید یک کپی از آنها در حافظه خارجی (External Storage) قرار بدهیم و سپس از این کدها، برای به اشتراک گذاری آن استفاده کنیم.

با فرض اینکه فایل مورد نظرمان در پوشه ای (folder) با نام MyFolder قرار دارد (یعنی پوشه MyFolder که در حافظه خارجی است) و نام فایل صوتی برابر my_file.mp3 باشد، برای به اشتراک گذاری آن فایل صوتی با Intent ، کدهای زیر را می نویسیم :


File root = android.os.Environment.getExternalStorageDirectory();
File dir = new File (root.getAbsolutePath() + "/MyFolder");
String fileName = "my_file.mp3";
File file = new File(dir, fileName);
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("audio/*");
intent.putExtra(Intent.EXTRA_STREAM, outputFileUri);
startActivity(Intent.createChooser(intent, "Share this image via"));

در کدهای بالا، root برابر مسیر پوشه (folder) اصلی حافظه خارجی (External Storage)، یعنی همان پوشه بندی اصلی گوشی، می باشد.

در خط زیر از کدها، تعیین کرده ایم که فایل مورد نظرمان، یک فایل صوتی می باشد :


intent.setType("audio/*");

علاوه بر استفاده از کدهای بالا، دقت شود که باید کدهای زیر درون AndroidManifest.xml پروژه اندروید نوشته شود (برای اجازه دادن برای ساخت فایل در حافظه خارجی و یا خواندن یک فایل از حافظه خارجی) :


<uses-permission android:name="android.permission.WRITE_EXTERNAL_STORAGE" />
<uses-permission android:name="android.permission.READ_EXTERNAL_STORAGE" />
نویسنده علیرضا گلمکانی
شماره کلید 360
گزینه ها
به اشتراک گذاری (Share) در شبکه های اجتماعی
نظرات 2 2 0
reza
۱۳۹۷/۱۰/۰۴
۱۰:۳۲

سلام خسته نباشد 
اگه امکانش هست توضیح بدید اون بخش اول در چه قسمتی نوشته بشه

admin
۱۳۹۷/۱۰/۰۴
۱۲:۴۶

سلام.
به عنوان مثال، اگر بخواهید که به محض اجرای یک Activity ، عملیات اجرا شود، باید کد اول که ذکر کردیم، در روش onCreate از Activity نوشته شود.
یعنی مثلا برای یک Activity با نام KelidestanActivity ، موقعیت آن قطعه کد در Activity مورد نظر، به صورت زیر خواهد بود (تنها محل جایگذاری کدها را در نظر داشته باشید) :

کد پی‌اچ‌پی:
package com.example.kelidestan;

import android.os.Bundle;
import android.app.Activity;
import android.view.Menu;

public class 
KelidestanActivity extends Activity {

 
       @Override
        protected void onCreate
(Bundle savedInstanceState) {
 
               super.onCreate(savedInstanceState);
 
               setContentView(R.layout.activity_kelidestanactivity);

                
File root android.os.Environment.getExternalStorageDirectory(); 
                
File dir = new File (root.getAbsolutePath() + "/MyFolder");
                
String fileName "my_file.mp3";
                
File file = new File(dirfileName);
                
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("audio/*");
                
intent.putExtra(Intent.EXTRA_STREAMoutputFileUri);
                
startActivity(Intent.createChooser(intent"Share this image via"));

 
       }





Flower

ارسال نظر جدید (بدون نیاز به عضو بودن در وب سایت)