Метод copyFile (AssetManager, String, File) не определен для onItemClick listerner



Я создаю приложение для android, и я хочу, когда я нажимаю на вид списка, чтобы получить идентификатор из щелкнутого элемента, получить файл, скопировать этот файл и установить его в качестве мелодии звонка.
Но я получаю эту ошибку
The method copyFile(AssetManager, String, File) is undefined for the type new AdapterView.OnItemClickListener(){}



    l.setOnItemClickListener(new OnItemClickListener() {
@Override
public void onItemClick(AdapterView<?> parent, View view,
int position, long id) {

String selectedName = l.getContext().toString();

AssetManager assetManager = getAssets();

File file = new File(Environment.getExternalStorageDirectory(),
"/myRingtonFolder/Audio/");
if (!file.exists()) {
file.mkdirs();
}

String path = Environment.getExternalStorageDirectory()
.getAbsolutePath() + "/FunnysoundsRingtones/Audio/";

File out = new File(path + "/", selectedName);
if(!out.exists()){
copyFile(assetManager, "Yeah.mp3", out);
}

ContentValues values = new ContentValues();
values.put(MediaStore.MediaColumns.DATA, out.getAbsolutePath());
values.put(MediaStore.MediaColumns.TITLE, "RINGTONE");
values.put(MediaStore.MediaColumns.MIME_TYPE, "audio/mp3");
values.put(MediaStore.MediaColumns.SIZE, out.length());
values.put(MediaStore.Audio.Media.ARTIST, R.string.app_name);
values.put(MediaStore.Audio.Media.IS_RINGTONE, true);
values.put(MediaStore.Audio.Media.IS_NOTIFICATION, true);
values.put(MediaStore.Audio.Media.IS_ALARM, true);
values.put(MediaStore.Audio.Media.IS_MUSIC, true);

Uri uri = MediaStore.Audio.Media.getContentUriForPath(out.getAbsolutePath());
ContentResolver mCr = getContentResolver();
Uri newUri = mCr.insert(uri, values);

try {
RingtoneManager.setActualDefaultRingtoneUri(
getApplicationContext(), RingtoneManager.TYPE_RINGTONE, newUri);
Settings.System.putString(mCr, Settings.System.RINGTONE,
newUri.toString());
}
catch (Throwable t)
{
//TODO Handle exception
}

switch (position) {
case 0:
if(mp!=null)
{
mp.release();
mp=null;
}

mp = MediaPlayer.create(MainActivity.this, R.raw.getchopa);
mp.start();


break;
case 1:


Как я могу это исправить?
Есть ли какой-то другой метод, который я должен использовать?

549   1  

1 ответ:

Использовать

InputStream in = assetManager.open(filename);

Затем

private void copyFile(InputStream in, OutputStream out) throws IOException {
      byte[] buffer = new byte[1024];
      int read;
      while((read = in.read(buffer)) != -1){
        out.write(buffer, 0, read);
      }
}

Comments

    Ничего не найдено.