To get a return result from an activity, use startActivityForResult instead of startActivity.
private int REQUEST_ACTION_PICK = 1;
...
  Intent intent = new Intent(Intent.ACTION_PICK, android.provider.MediaStore.Audio.Media.EXTERNAL_CONTENT_URI);
  // startActivity(intent);
  startActivityForResult(intent, REQUEST_ACTION_PICK);  //fixme
// ...
  @Override
  protected void onActivityResult(int requestCode, int resultCode, @Nullable Intent data) {
    super.onActivityResult(requestCode, resultCode, data);
    if (requestCode == REQUEST_ACTION_PICK && resultCode == RESULT_OK) {
      Uri uri = data.getData();
      Log.d(TAG, uri.toString());
    }
  }
As for 'how set it as ringtone or alarm?', perhaps this might work?
Set default alarm sound programatically Android