Xamarin Android - 如何 select 从 URI 打开视频应用程序?
Xamarin Android - How to select a video app to open from a URI?
好像,例如,我会 select 来自文件管理器的视频文件(或提供 URL)然后我想弹出一个询问我 "on which app do you want to play it on?", 比如 VLC 播放器。
我不确定如何为它构建工作意图。
我在 Java 中使用这段代码要求用户 select 一个视频,然后要求用户选择一个程序来打开它(将语法转换为 C# 非常容易,因为API 相同):
final int VIDEO_REQUEST_CODE = 5000;
@Override
protected void onCreate(Bundle savedInstanceState) {
super.onCreate(savedInstanceState);
setContentView(R.layout.activity_puzzle);
Intent intent = new Intent(Intent.ACTION_PICK,
MediaStore.Video.Media.EXTERNAL_CONTENT_URI);
startActivityForResult(intent, VIDEO_REQUEST_CODE);
}
@Override
protected void onActivityResult(int requestCode, int resultCode, Intent data) {
super.onActivityResult(requestCode, resultCode, data);
if(requestCode == VIDEO_REQUEST_CODE)
{
Uri videoUri = data.getData();
Intent intent = new Intent();
intent.setAction(android.content.Intent.ACTION_VIEW);
MimeTypeMap mime = MimeTypeMap.getSingleton();
ContentResolver resolver = this.getContentResolver();
String type = mime.getExtensionFromMimeType(resolver.getType(videoUri));
intent.setDataAndType(videoUri, type);
this.startActivity(intent);
}
}
好像,例如,我会 select 来自文件管理器的视频文件(或提供 URL)然后我想弹出一个询问我 "on which app do you want to play it on?", 比如 VLC 播放器。
我不确定如何为它构建工作意图。
我在 Java 中使用这段代码要求用户 select 一个视频,然后要求用户选择一个程序来打开它(将语法转换为 C# 非常容易,因为API 相同):
final int VIDEO_REQUEST_CODE = 5000;
@Override
protected void onCreate(Bundle savedInstanceState) {
super.onCreate(savedInstanceState);
setContentView(R.layout.activity_puzzle);
Intent intent = new Intent(Intent.ACTION_PICK,
MediaStore.Video.Media.EXTERNAL_CONTENT_URI);
startActivityForResult(intent, VIDEO_REQUEST_CODE);
}
@Override
protected void onActivityResult(int requestCode, int resultCode, Intent data) {
super.onActivityResult(requestCode, resultCode, data);
if(requestCode == VIDEO_REQUEST_CODE)
{
Uri videoUri = data.getData();
Intent intent = new Intent();
intent.setAction(android.content.Intent.ACTION_VIEW);
MimeTypeMap mime = MimeTypeMap.getSingleton();
ContentResolver resolver = this.getContentResolver();
String type = mime.getExtensionFromMimeType(resolver.getType(videoUri));
intent.setDataAndType(videoUri, type);
this.startActivity(intent);
}
}