Kotlin中的图像共享意图问题

时间:2018-11-08 08:23:52

标签: android kotlin

在这里,我分享图像的意图。该图像位于可绘制的文件夹中。 为此public class MyGdxGame extends ApplicationAdapter implements GestureDetector.GestureListener { SpriteBatch batch; Texture texture; Sprite sprite; OrthographicCamera camera; @Override public void create() { batch = new SpriteBatch(); camera = new OrthographicCamera(Gdx.graphics.getWidth(), Gdx.graphics.getHeight()); texture = new Texture(Gdx.files.internal("map.jpg")); sprite = new Sprite(texture); sprite.setPosition(-sprite.getWidth() / 2, -sprite.getHeight() / 2); Gdx.input.setInputProcessor(new GestureDetector(this)); } @Override public void render() { Gdx.gl.glClearColor(1, 1, 1, 1); Gdx.gl.glClear(GL20.GL_COLOR_BUFFER_BIT); camera.update(); batch.setProjectionMatrix(camera.combined); batch.begin(); sprite.draw(batch); batch.end(); } @Override public void dispose() { batch.dispose(); texture.dispose(); } @Override public boolean pan(float x, float y, float deltaX, float deltaY) { camera.translate(-deltaX, deltaY); return false; } @Override public boolean zoom(float initialDistance, float distance) { float scale = initialDistance / distance; camera.zoom = scale; return false; } }

excpetion.
android.os.FileUriExposedException

代码:

file:///storage/emulated/0/Android/data/com.example.arkkhano.myapplication/cache/myImage.png exposed beyond app through ClipData.Item.getUri()
at android.os.StrictMode.onFileUriExposed(StrictMode.java:1958)
at android.net.Uri.checkFileUriExposed(Uri.java:2356)

1 个答案:

答案 0 :(得分:0)

根据Android文档,您应该使用FileProvider

https://developer.android.com/reference/android/support/v4/content/FileProvider

但是当我尝试过时,它只能在某些设备上运行,而不能在其他设备上运行。

对我来说,一种安全的方法是先将文件导出到外部存储(Environment.getExternalStorageDirectory),然后共享给其他应用。适用于我所有的设备。