铃声方法不起作用

时间:2018-06-19 15:40:13

标签: java android ringtone

我有一个项目,无法在互联网上获得良好的信息。

我正在编写一个应用,其中显示了Raw文件夹中的MP3歌曲列表,并允许用户单击按钮来播放歌曲。 我想以同样的方式允许用户将歌曲设置为“铃声”。

  • 步骤1:

    我在AndroidManifest.xml文件中授予了权限。

    <uses-permission android:name="android.permission.WRITE_EXTERNAL_STORAGE">
    </uses-permission>
    
  • 步骤2:

    我创建了一个原始文件并添加了mp3文件。

  • 步骤3:

    我创建了一个按钮和一个onClick方法。

  • 步骤4:

    所有其余代码如下。我的错误在哪里?

    package com.example.ustat.ringtone; 
    
    import android.content.ContentValues; 
    import android.media.RingtoneManager; 
    import android.net.Uri; 
    import android.os.Bundle; 
    import android.provider.MediaStore; 
    import android.support.v7.app.AppCompatActivity; 
    import android.util.Log; 
    import android.view.View; 
    import android.widget.Button; 
    
    import java.io.File; 
    
    public class MainActivity extends AppCompatActivity { 
    
        Button btn; 
        Uri path; 
    
        @Override 
        protected void onCreate(Bundle savedInstanceState) { 
            super.onCreate(savedInstanceState); 
            setContentView(R.layout.activity_main); 
    
            path = Uri.parse("android.resource://com.applenty/raw/"); 
            RingtoneManager.setActualDefaultRingtoneUri(getApplicationContext(), RingtoneManager.TYPE_RINGTONE, path); 
            Log.i("Ringtone", "Ringtone Set to Resource:: "+ path.toString()); 
            RingtoneManager.getRingtone(getApplicationContext(), path).play(); 
            btn = (Button) findViewById(R.id.button); 
            btn.setOnClickListener(new View.OnClickListener() { 
                @Override 
                public void onClick(View view) { 
                    setRingtones(); 
                } 
            }); 
    } 
    
        private void setRingtones()
        {
            File k = new File(path, "ciaobella.mp3"); // path is a file playing
    
            ContentValues values = new ContentValues();
            values.put(MediaStore.MediaColumns.DATA, k.getAbsolutePath());
            values.put(MediaStore.MediaColumns.TITLE, "My Song title"); //You will have to populate
            values.put(MediaStore.MediaColumns.SIZE, 215454);
            values.put(MediaStore.MediaColumns.MIME_TYPE, "audio/mp3");
            values.put(MediaStore.Audio.Media.ARTIST, "Band Name"); //You will have to populate this
            values.put(MediaStore.Audio.Media.DURATION, 230);
            values.put(MediaStore.Audio.Media.IS_RINGTONE, true);
            values.put(MediaStore.Audio.Media.IS_NOTIFICATION, false);
            values.put(MediaStore.Audio.Media.IS_ALARM, false);
            values.put(MediaStore.Audio.Media.IS_MUSIC, false);
    
            //Insert it into the database
            Uri uri = MediaStore.Audio.Media.getContentUriForPath(k.getAbsolutePath());
            Uri newUri = main.getContentResolver().insert(uri, values);
    
            RingtoneManager.setActualDefaultRingtoneUri(
                    MainActivity,
                    RingtoneManager.TYPE_RINGTONE,
                    newUri
            );
        }
    }
    

0 个答案:

没有答案