“默默地”开始意图
接着这个问题,有没有办法在不提示用户的情况下在Android中开始一个意图?
现在,我正在像这样检索图像:
public void changeImage(View view) {
Intent intent = new Intent();
intent.setType("image/*");
intent.setAction(Intent.ACTION_GET_CONTENT);
startActivityForResult(
Intent.createChooser(intent, getResources().getString(R.string.select_picture)),
PICK_IMAGE);
}
然后我存储Uri,并在必要时显示图像(我实际上首先调整它的大小,但这并不重要):
Uri _uri = Uri.parse(_path);
InputStream imageStream = null;
try {
imageStream = getContentResolver().openInputStream(_uri);
} catch (FileNotFoundException e) {
e.printStackTrace();
}
Bitmap b = BitmapFactory.decodeStream(imageStream);
iv.setImageBitmap(b);
我想通过“静默”调用意图来检索给定其Uri的图像数据,以便获得相关许可。所以我需要这样的东西:
编辑:
我尝试了该方法。此代码具有以下行为:setPackage()
如果使用ACTION_VIEW意图,则库将打开并显示特定图像。
如果使用ACTION_GET_CONTENT意图,系统会提示我从库中选取图像,即使我提供了特定的 Uri。
>
Uri _uri = Uri.parse(_path);
InputStream imageStream = null;
Bitmap b = null;
try {
imageStream = getContentResolver().openInputStream(_uri);
b = BitmapFactory.decodeStream(imageStream);
ImageView iv = (ImageView) findViewById(R.id.playerImage);
iv.setImageBitmap(b);
} catch (FileNotFoundException e) {
e.printStackTrace();
} catch (SecurityException e) {
e.printStackTrace();
Intent dummyIntent = new Intent(Intent.ACTION_GET_CONTENT);
//Intent dummyIntent = new Intent(Intent.ACTION_VIEW);
dummyIntent.setDataAndType(_uri,"image/*");
dummyIntent.setPackage("com.google.android.gallery3d");
startActivityForResult(dummyIntent, PICK_IMAGE);
}
有什么想法吗?