Java 如何分享活动截图?
我尝试了一个代码来截取一个活动的屏幕截图,然后分享它,这是非常好的工作,但只是在低于6.0的Android中,从6.0和更高,当我点击分享按钮,然后选择社交网络一个简短的对话框告诉我“无法加载图像” 我需要你的帮助,我的朋友们 这是我使用它的代码:Java 如何分享活动截图?,java,android,share,screenshot,Java,Android,Share,Screenshot,我尝试了一个代码来截取一个活动的屏幕截图,然后分享它,这是非常好的工作,但只是在低于6.0的Android中,从6.0和更高,当我点击分享按钮,然后选择社交网络一个简短的对话框告诉我“无法加载图像” 我需要你的帮助,我的朋友们 这是我使用它的代码: share.setOnClickListener(new View.OnClickListener() { @Override public void onClick(View v) { Bit
share.setOnClickListener(new View.OnClickListener() {
@Override
public void onClick(View v) {
Bitmap bitmap = takeScreenshot();
saveBitmap(bitmap);
shareIt();
}
public Bitmap takeScreenshot() {
View rootView = findViewById(android.R.id.content).getRootView();
rootView.setDrawingCacheEnabled(true);
return rootView.getDrawingCache();
}
public void saveBitmap(Bitmap bitmap) {
imagePath = new File(Environment.getExternalStorageDirectory() + "/screenshot.png");
FileOutputStream fos;
try {
fos = new FileOutputStream(imagePath);
bitmap.compress(Bitmap.CompressFormat.JPEG, 100, fos);
fos.flush();
fos.close();
} catch (FileNotFoundException e) {
Log.e("GREC", e.getMessage(), e);
} catch (IOException e) {
Log.e("GREC", e.getMessage(), e);
}
}
private void shareIt() {
Uri uri = Uri.fromFile(imagePath);
Intent sharingIntent = new Intent(android.content.Intent.ACTION_SEND);
sharingIntent.setType("image/*");
String shareBody = "In Tweecher, My highest score with screen shot";
sharingIntent.putExtra(android.content.Intent.EXTRA_SUBJECT, "My Tweecher score");
sharingIntent.putExtra(android.content.Intent.EXTRA_TEXT, shareBody);
sharingIntent.putExtra(Intent.EXTRA_STREAM, uri);
startActivity(Intent.createChooser(sharingIntent, "Share via"));
}
});
displayResults();
}
编辑:
我尝试替换Uri=Uri.fromFile(imagePath)
byuriuri=FileProvider.getUriForFile(context,context.getApplicationContext().getPackageName()+“.my.package.name.provider”,imagePath)代码>
但它说当我点击共享按钮时,应用程序停止了
如果FileUriExposedException
是导致问题的异常,请提供任何帮助:-
当应用程序向另一个应用程序公开文件://Uri时,会引发此异常
这仅针对目标为Build.VERSION\u code.N或更高版本的应用程序引发。针对早期SDK版本的应用程序可以共享file://Uri,但强烈建议不要这样做
这些链接可能给出上述问题的详细答案:-
希望这有帮助。试试这个:我认为Android 6+增加了只接受content://uri而不接受file://的限制,你必须通过ContentProvider@MarcosVasconcelos谢谢,我该怎么做呢,我是一个初学者,我试图替换Uri=Uri.fromFile(imagePath)的可能重复的代码;按Uri Uri=FileProvider.getUriForFile(context,context.getApplicationContext().getPackageName()+“.my.package.name.provider”,imagePath);但它说,当我点击“共享”按钮时,应用程序停止了please@LeoSanchez检查上的链接comments@MarcosVasconcelos谢谢,我检查了一下,试了一下,但没有解决办法