私は、ユーザーにオーディオファイルを選択させたいと思っています。そして、そのファイルパスを取得したいと思います。しかし、私は得意先のUri
がnullであるので、私はさらに簡単な問題があります。私は何か意味のある、つまりnullでないものを得ることができましたか?ファイル選択のインテントから非ヌルデータを取得するにはどうすればいいですか?
private void MainActivity_Click1(object sender, System.EventArgs e)
{
//var intent = new Intent();
var intent = new Intent(Intent.ActionPick, Android.Provider.MediaStore.Audio.Media.ExternalContentUri);
intent.SetType("audio/*");
intent.SetAction(Intent.ActionGetContent);
StartActivityForResult(
Intent.CreateChooser(intent, "Select audio file"), SelectAudioCode);
}
と選択に応答していない:意図開始
protected override void OnActivityResult(int requestCode, Result resultCode, Intent data)
{
base.OnActivityResult(requestCode, resultCode, data);
if (resultCode == Result.Ok && requestCode==SelectAudioCode)
{
Android.Net.Uri uri = Intent.Data;
audioFileNameText.Text = uri == null ? "<NULL>" : uri.ToString();
}
}
どんなに私はintent
を作成する方法を(上記のコードを参照してください)、私はいつもNULL
を参照してください。
更新:私は、パラメータを経由して渡されたIntent
を使用している場合、それのData
プロパティは、同様null
です。
ありがとうございますが、私が書いたように - 「私は単純な問題があり、Uriはnullです」。私。あなたは「data.DataからコンテンツUriを得ることができる」と書いたように、 'data.Data'が' null'なので、それは私のためのさらなるステップです。私は全く処理できません。 – greenoldman
使用しているインテントは、現在のアクティビティを開始するインテントですが、セレクタから返されたインテントからのみUriを取得できます。 @greenoldmanそれをはっきりとはっきりさせないで申し訳ありませんが、私は現在のアクティビティのインテントと 'OnActivityResult'のインテントの違いを明確にするために私の答えを更新しました。 –
ありがとうございます、私は私の質問を更新するつもりです、私はその 'Intent'もチェックしました。また、そのデータはnullです:-( – greenoldman