我用按钮创建了一个应用程序,并为该按钮编写了onClickListener.我已经尝试了几个示例代码示例,但没有一个有效.他们都带来了Android相机应用程序,不拍照.我想要一些代码可以放在我的onClickListener中,所以当我按下屏幕上的按钮时,会拍摄一张照片.
当我在Android活动中按下按钮时,如何让相机拍照?
我曾经使用MediaStore.Images.Media.insertImage但insertImage方法保存图像现在已弃用。该文件说:
此方法在 API 级别 29 中已弃用。插入图像应使用MediaColumns#IS_PENDING执行,它提供了对生命周期的更丰富的控制。
我真的不明白,因为MediaColumns.IS_PENDING它只是一个标志,我应该如何使用它?
我应该使用ContentValues吗?
因此,在我的应用程序中,我一度将一堆图像保存到临时文件夹中,我希望它们立即显示在图库中.重新启动,他们这样做,但否则他们没有.
我尝试过使用sendBroadcast方法:
sendBroadcast(new Intent(Intent.ACTION_MEDIA_MOUNTED,
Uri.parse("file://" + Environment.getExternalStorageDirectory())));
Run Code Online (Sandbox Code Playgroud)
但我得到一个权限错误:
E/AndroidRuntime( 2628): java.lang.SecurityException: Permission Denial: not allowed to send broadcast android.intent.action.MEDIA_MOUNTED from pid=2628, uid=10068
Run Code Online (Sandbox Code Playgroud)
我可以在AndroidManifest中丢失权限,还是不再支持?谢谢
我正在使用DownloadManager从我们的服务器下载图像,我将文件放在externalFilesDir.
我发送广播意图因为我不希望这些下载的图像出现在图库中.
sendBroadcast(new Intent(Intent.ACTION_MEDIA_MOUNTED, Uri.parse("file://" + context.getExternalFilesDir(null))));
Run Code Online (Sandbox Code Playgroud)
我之前只在我的Galaxy S3 Jelly Bean 4.3上测试了它并且它正在工作,但是当我测试它时KitKat 4.4它崩溃了应用程序.
有没有更好的方法可以不从DownloadManager下载的文件没有出现在电话库中?
堆栈跟踪
06-05 17:34:41.940: E/AndroidRuntime(15410): FATAL EXCEPTION: main
06-05 17:34:41.940: E/AndroidRuntime(15410): Process: com.walintukai.lfdate, PID: 15410
06-05 17:34:41.940: E/AndroidRuntime(15410): java.lang.RuntimeException: Error receiving broadcast Intent { act=android.intent.action.DOWNLOAD_COMPLETE flg=0x10 pkg=com.walintukai.lfdate (has extras) } in com.walintukai.lfdate.SocketIOService$1@42359f40
06-05 17:34:41.940: E/AndroidRuntime(15410): at android.app.LoadedApk$ReceiverDispatcher$Args.run(LoadedApk.java:778)
06-05 17:34:41.940: E/AndroidRuntime(15410): at android.os.Handler.handleCallback(Handler.java:733)
06-05 17:34:41.940: E/AndroidRuntime(15410): at android.os.Handler.dispatchMessage(Handler.java:95)
06-05 17:34:41.940: E/AndroidRuntime(15410): at android.os.Looper.loop(Looper.java:136)
06-05 17:34:41.940: E/AndroidRuntime(15410): at android.app.ActivityThread.main(ActivityThread.java:5057)
06-05 17:34:41.940: E/AndroidRuntime(15410): at …Run Code Online (Sandbox Code Playgroud)