我有一个关于android编程的问题。我有一个文件浏览器应用程序,我想实现各种功能,如打开照片音乐等。但在应用程序本身,不发送意图到其他应用程序!所以,我的问题是,我应该使用什么意图过滤器来“插件”应用程序来接收“开放”意图?
这是我的代码
public static void openFile(final Context context, final File target) {
final String mime = MimeTypes.getMimeType(target);
final Intent i = new Intent(Intent.ACTION_VIEW);
if (mime != null) {
i.setDataAndType(Uri.fromFile(target), mime);
} else {
i.setDataAndType(Uri.fromFile(target), "*/*");
}
if (context.getPackageManager().queryIntentActivities(i, 0).isEmpty()) {
Toast.makeText(context, R.string.cantopenfile, Toast.LENGTH_SHORT)
.show();
return;
}
try {
context.startActivity(i);
} catch (Exception e) {
Toast.makeText(context,
context.getString(R.string.cantopenfile) + e.getMessage(),
Toast.LENGTH_SHORT).show();
}
}
答案 0 :(得分:0)
好吧,假设您想要从自己的资源管理器中打开图像 创建一个新的Activity让我们说ImageActivity,然后你只需要在你的活动中实现一个ImageViewer,并从调用Activity中简单地发送一个包含你的图像Bytes的Extra Bundle的意图
修改
发送活动
Intent intent = new Intent(MainActivity.this, ImageActivity.class);
ImageView imageView = findViewById(R.id.image).getDrawable();
imageView.buildDrawingCache();
Bitmap image = imageView.getDrawingCache();
Bundle extras = new Bundle();
extras.putParcelable("imagebitmap", image);
intent.putExtras(extras);
startActivity(intent);
接收活动ImageActivity
Bundle extras = getIntent().getExtras();
Bitmap bmp = (Bitmap) extras.getParcelable("imagebitmap");
ImageView image = findViewById(R.id.image);
image.setImageBitmap(bmp );