PDA

View Full Version : ذخیره سازی فایل از برنامه روی کارت حافضه



rezaeade
چهارشنبه 20 شهریور 1392, 17:13 عصر
سلام خسته نباشید
من میخواستم تو برنامه چنتا فایل pdf بزارم ویه دکمه بسازم که وقتی کاربر روش کلیک کرد فایل های pdfروی کارت حافضه گوشی ذخیره بشن لطفا اگه میشه راهنماییم کنید
درضمن من تازه کارهستم :لبخند:

ghader62
چهارشنبه 20 شهریور 1392, 23:37 عصر
دوست عزیز فایلها رو توی فولدر raw بریز و با متد زیر اونارو کپی کن
public static void copyFile(int id, String somePathOnSdCard) {
InputStream in = G.gContext.getResources().openRawResource(id);
FileOutputStream out;
try {
out = new FileOutputStream(somePathOnSdCard);
byte[] buff = new byte[1024];
int read = 0;
try {
while ((read = in.read(buff)) > 0) {
out.write(buff, 0, read);
}
} finally {
in.close();
out.close();
}
}
catch (FileNotFoundException e) {
e.printStackTrace();
}
catch (IOException e) {
e.printStackTrace();
}
}
توجه کن که id بصورت R.raw.fileId هستش که fileId هم آی دی فایل موردنظر توی فولدر raw میباشد
و somePathOnSdCard=Environment.getExternalStorageDir ectory().toString() + "/yourFolder"+"/yourFile.pdf"
فقط حواست باشه توی منیفست اجازه دسترسی رو وارد کنی یعنی کد زیر
<uses-permission android:name="android.permission.WRITE_EXTERNAL_STORAGE" />

kinglove0111
یک شنبه 25 اسفند 1392, 11:02 صبح
سلام
من از این کد استفاده کردم اما خط دومش خطا میده ( G.gContext )
کسی میتونه راهنمایی کنه

shahin bahari
یک شنبه 25 اسفند 1392, 11:33 صبح
سلام
من از این کد استفاده کردم اما خط دومش خطا میده ( G.gContext )
کسی میتونه راهنمایی کنه
G.gcontext منظور Context برنامه بوده که تو این برنامه که دوستمون گزاشتند حتما جایی ذخیره کرده بودند یا...
شما اگر توی اکتیویتی هستید به جاش YourActivityName.this استفاده کنید و اگر توی فرگمنت از getActivity() .
راستی حافظه هم درستش هست

kinglove0111
یک شنبه 25 اسفند 1392, 11:46 صبح
سلام
دوست عزیز درست متوجه نشدم این کدم میشه درستش کنید.



public class p1 extends Activity {

private Button buttonPlayStop;
private MediaPlayer mediaPlayer;
private SeekBar seekBar;

String nameply;
String title;
String artist;

String somePathOnSdCard;

private final Handler handler = new Handler();

@Override
public void onCreate(Bundle icicle) {
requestWindowFeature(Window.FEATURE_NO_TITLE);
getWindow().setFlags(WindowManager.LayoutParams.FL AG_FULLSCREEN,
WindowManager.LayoutParams.FLAG_FULLSCREEN);
super.onCreate(icicle);
setContentView(R.layout.p);
initViews();

TextView tv = (TextView)findViewById(R.id.bottle_dialog_text);
tv.setText("نوروز");

final ImageView vi = (ImageView) findViewById(R.id.imageViewcall);

vi.setOnClickListener(new OnClickListener(){
@Override
public void onClick(View arg0) {
title="noroz";
artist="noroz";
nameply = "p1.mp3";
somePathOnSdCard=Environment.getExternalStorageDir ectory().toString() + "/zyourFile.mp3";

copyFile(R.raw.p1,somePathOnSdCard);

}
});

}

public static void copyFile(int id, String somePathOnSdCard) {
InputStream in = mycontext.getResources().openRawResource(id);
FileOutputStream out;
try {
out = new FileOutputStream(somePathOnSdCard);
byte[] buff = new byte[1024];
int read = 0;
try {
while ((read = in.read(buff)) > 0) {
out.write(buff, 0, read);
}
} finally {
in.close();
out.close();
}
}
catch (FileNotFoundException e) {
e.printStackTrace();
}
catch (IOException e) {
e.printStackTrace();
}
}

// This method set the setOnClickListener and method for it (buttonClick())
private void initViews() {
buttonPlayStop = (Button) findViewById(R.id.ButtonPlayStop);
buttonPlayStop.setOnClickListener(new OnClickListener() {public void onClick(View v) {buttonClick();}});

mediaPlayer = MediaPlayer.create(this, R.raw.p1);

seekBar = (SeekBar) findViewById(R.id.SeekBar01);
seekBar.setMax(mediaPlayer.getDuration());
seekBar.setOnTouchListener(new OnTouchListener() {public boolean onTouch(View v, MotionEvent event) {
seekChange(v);
return false; }
});

}

public void startPlayProgressUpdater() {
seekBar.setProgress(mediaPlayer.getCurrentPosition ());

if (mediaPlayer.isPlaying()) {
Runnable notification = new Runnable() {
public void run() {
startPlayProgressUpdater();
}
};
handler.postDelayed(notification,1000);
}else{
//mediaPlayer.pause();
buttonPlayStop.setText(getString(R.string.play_str ));
seekBar.setProgress(mediaPlayer.getCurrentPosition ());
}
}

// This is event handler thumb moving event
private void seekChange(View v){
//if(mediaPlayer.isPlaying()){
SeekBar sb = (SeekBar)v;
mediaPlayer.seekTo(sb.getProgress());
//}
}

// This is event handler for buttonClick event
private void buttonClick(){
if (buttonPlayStop.getText() == getString(R.string.play_str)) {
buttonPlayStop.setText(getString(R.string.pause_st r));
try{
mediaPlayer.start();
startPlayProgressUpdater();
}catch (IllegalStateException e) {
mediaPlayer.pause();
}
}else {
buttonPlayStop.setText(getString(R.string.play_str ));
mediaPlayer.pause();
}
}

@Override
protected void onDestroy() {
mediaPlayer.stop();
super.onDestroy();
mediaPlayer.stop();
}
}

shahin bahari
یک شنبه 25 اسفند 1392, 11:54 صبح
کل کد رو چک نکردم. فقط قسمتی که مربوط به این قضیه هست خط 45 کد شماست که باید این شکلی بشه:

InputStream in = p1.this.getResources().openRawResource(id);

kinglove0111
یک شنبه 25 اسفند 1392, 12:00 عصر
دوست عزیز این کارو کردم درست نشد.
کل کد درسته فقط همون قسمتی که مربوط به این قضیه هست مشکل داره
لطفا چکش کنید ببینید درست میشه یا نه