将铃声设置为默认铃声或某些电话号码



我想创建一个应用程序来使用铃声设置为默认铃声或为特定电话号码设置该铃声。你能帮我写代码吗?

我看到很多帖子,但有人展示了我实际上应该做什么。所以我决定创建这个完整的答案,你可以从使用这个示例代码开始...

这是我使用的MainActivity.java

        public class MainActivity extends Activity {     
        @Override
          public void onCreate(Bundle savedInstanceState) {
        super.onCreate(savedInstanceState);
        setContentView(R.layout.activity_main2);
        b2 = (Button) findViewById(R.id.button2);
        b2.setOnClickListener(new OnClickListener(){
            @Override
            public void onClick(View arg0) {
            Intent intent1 = new Intent();  
                intent1.setAction(Intent.ACTION_GET_CONTENT);  
                intent1.setType("audio/*"); 
                startActivityForResult(Intent.createChooser(intent1, "Choose Sound File"), 6);

            }
        });
            }


    @Override
    protected void onActivityResult(int requestCode, int resultCode, Intent data) {
    if(resultCode ==RESULT_OK&&requestCode==6){
    Uri i = data.getData(); //getDATA
    String s = = i.getPath(); //getPath
    File k = new File(s); //set File from path
if(s!=null){  //(file.exists
    ContentValues values = new ContentValues();
       values.put(MediaStore.MediaColumns.DATA, k.getAbsolutePath());
       values.put(MediaStore.MediaColumns.TITLE, "ring");
       values.put(MediaStore.MediaColumns.MIME_TYPE, "audio/mp3");
       values.put(MediaStore.MediaColumns.SIZE, k.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, false);
       Uri uri = MediaStore.Audio.Media.getContentUriForPath(k.getAbsolutePath());
       getContentResolver().delete(uri, MediaStore.MediaColumns.DATA + "="" + k.getAbsolutePath() + """, null);
    Uri newUri = getContentResolver().insert(uri, values);

       try {
           RingtoneManager.setActualDefaultRingtoneUri(MainActivity.this, RingtoneManager.TYPE_RINGTONE, newUri);
       } catch (Throwable t) {
       }    
}

    }

    }

    } 
最后,在您的

AndroidManifest.xml中添加这些权限非常重要,例如,如果您不添加权限来写入外部存储,您的应用程序将像我的一样崩溃。 xD

您需要什么:

<uses-permission android:name="android.permission.WRITE_SETTINGS" ></uses-permission>
<uses-permission android:name="android.permission.WRITE_EXTERNAL_STORAGE"/>
  <uses-permission android:name="android.permission.CHANGE_CONFIGURATION" ></uses-permission>
  <uses-permission android:name="android.permission.MODIFY_AUDIO_SETTINGS" ></uses-permission>

您可以在Google Play上试用我的应用程序:BackAtel音频管理器

希望有帮助...

最新更新