我正在开发壁纸应用程序,用户可以设置壁纸并通过蓝牙和其他应用程序共享该壁纸。 我用以下来识别用户选择的壁纸。
ImageView imagePreview = (ImageView) findViewById(R.id.iv_preview);
imagePreview.setTag("a1");
在我的另一个函数中使用getTag()
来使用所选壁纸。
要共享用户所选图像,我使用了以下代码
String mDrawableName = (String) imagePreview.getTag();
Uri imageUri = Uri.parse("android.resource://com.mypackage.wallpaperapp/drawable/"+mDrawableName);
Log.d("here i got", imageUri.toString()); // here i got android.resource://com.mypackage.wallpaperapp/drawable/a3
Intent shareIntent = new Intent();
shareIntent.setAction(Intent.ACTION_SEND);
shareIntent.putExtra(Intent.EXTRA_STREAM, imageUri);
shareIntent.setType("image/*");
startActivity(Intent.createChooser(shareIntent, "Share From"));
但我收到设备中的错误" 文件未知文件无法发送", 我在哪里错了?
我在一些东西中发现我必须首先将我的图像资源保存到存储中,之后我可以发送我的图像。 但我不知道如何将我的图像资源文件保存到存储中并通过不同的应用程序发送给它。
请帮助。
答案 0 :(得分:0)
也许这个答案可以帮到你:
https://stackoverflow.com/a/19618432/3743093
简而言之:您无法传递使用
创建的URI Uri uri = Uri.parse(String);
到shareIntent
,因为它缺少TITLE
和MIME_TYPE
等信息。
那是因为文件类型未知(缺失)并抛出此错误。
ContentValues values = new ContentValues();
values.put(Images.Media.TITLE, "title");
values.put(Images.Media.MIME_TYPE, "image/jpeg");
Uri uri = getContentResolver().insert(Uri.parse(filename),
values);
希望这有帮助。