如何获得每张新图片在画廊应用中可见的通知?
背景 当用户下载新图像或使用相机捕获一个图像时,Gallery应用将更新以显示新图像. 无论是如何创建它,我都需要立即通知每个新图像(相机,浏览器,...),就像Gallery App显示的那样. . 问题 事实证明,有一个MediaScanner Android组件,负责扫描所有类型的媒体文件,并且当它完成时,它应该发送意图" Media_scanner_fined " .il/2012/05/android-how-how-how-to-if-media-scanner.html" rel =" noreferrer"> ). 所以我添加了下一个代码,希望每当用户从相机应用中拍摄照片时,它都会显示出烤面包: 清单: ...
32 2024-04-03
编程技术问答社区
我不能将我的位图保存到安卓系统的图库中?
我正在尝试将我的编辑图像保存到画廊中,从那里用户可以访问它. 我从参考文献中使用了"将照片添加到画廊中":这是我的代码: String mCurrentPhotoPath; public void startSave() { FileOutputStream fileOutputStream = null; File new_file = null; try { new_file = createImageFile(); fileOutputStream = new FileOutputStream(new_file); imageView.setDrawingCacheEnabled(true); Bitmap bitmap = Bitmap.createBitmap(imageView.getDrawingCache()); bitmap.compress(Bitmap.
6 2024-03-31
编程技术问答社区
如何在Android 4.4 KitKat的SD卡上将媒体添加到带有元数据的媒体存储中?
背景:在Android 4.4中,Google决定应用程序应 noce请写入对SD卡. 但是,应用程序可以写入/sdcard/android/data/app软件包名称. 所以这就是我所做的.我已经写了一个MP3文件到/android/data/.然后,我希望这个mp3文件出现在Android音乐播放器中. 我已经尝试了以下... sendBroadcast(new Intent(Intent.ACTION_MEDIA_MOUNTED, Uri.parse("file://" + filePath))); 和.... MediaScannerConnection.scanFile(this, new String[] { file.toString() }, new String[] {"audio/*"}, new MediaScannerConnection.OnScanCom
ACTION_MEDIA_SCANNER_SCAN_FILE from external sdcard Lollipop+
我有一个问题,此代码可以很好地工作,但是如果视频在SDCARD中,则无法由MediaScan删除. 这是一个错误吗?还是这是特别的许可? @Override public void onVideoSelected(final String uri, String mimeType) { final AlertDialog.Builder builder = new AlertDialog.Builder(TV.this); builder.setTitle("Select"); builder.setItems(new CharSequence[] {"Play Video", "Remove Video"}, new DialogInterface.OnClickListener() { public void onClick(DialogInterf
4 2024-02-19
编程技术问答社区
观察Audio.Media.EXTERNAL_CONTENT_URI的Android内容观察器的变化
我正在开发一个Android应用程序,其中我必须在其中检测具有文件名,文件路径和操作的音频文件的Android SD卡中的更改.例如,如果我在SD卡中添加文件,那么我想知道 添加的文件的名称 文件的路径 操作 - 添加 以前我已经尝试过文件观察者,但是为此,我必须在每个目录上应用它.因此,我搜索了其他一些解决方案,并获得了有关 audia.media.external_content_uri 的信息.然后我创建了一个像这样的观察者 uriobserver.java-这是一个内容观察者 class UriObserver extends ContentObserver { public UriObserver(Handler handler) { super(handler); // TODO Auto-generated constructor stub } @Override public
如何在安卓系统中获取视频文件的帧数
我想获取视频文件的框架,以在Android的画廊视图中显示.以及如何编辑帧,例如 选择框架部分 使用选定的部分 删除选定的部分 复制选定的部分 切割选定的部分 粘贴到头部 粘贴到尾巴 解决方案 您可以使用MediaMetadataretriever类.它具有GetFrameat()方法,其中您可以指定要获得的框架的时间. 有关详细信息,请参阅 其他解决方案 实际上,MediaMetadataRetriever.getFrameAtTime使用微秒作为参数,而不是毫秒.进行更改后,您可以从视频中获得正确的帧.
安卓ACTION_MEDIA_SCANNER_SCAN_FILE在重启前不显示图像?
我目前正在开发一个Android应用程序,用户在设备上存储在外部内存中的图片,然后我也试图将画廊扫描以扫描文件以将新媒体添加到画廊中更新直到设备重新启动. 我使用的代码如下: Intent mediaScanIntent = new Intent(Intent.ACTION_MEDIA_SCANNER_SCAN_FILE); File f = new File(mCurrentPhotoPath); Log.v("INFO", mCurrentPhotoPath.toString()); Uri contentUri = Uri.fromFile(f); mediaScanIntent.setData(contentUri); this.sendBroadcast(mediaScanIntent); 使用我的应用程序拍照后,我可以使用设备上的文件管理器应用程序验证它存在,并且还记录了文件路径,然后将其传递给媒体扫描仪 之前
16 2024-02-15
编程技术问答社区
文件未被添加到画廊安卓版
我正在制作的这个应用程序正在拍照并将其保存到SDCARD,但图像没有显示在画廊中...我的代码有问题 有问题 public void takepicture(View view){ try{ String state = Environment.getExternalStorageState(); if (Environment.MEDIA_MOUNTED.equals(state)) { //To store public files File directory=new File(Environment.getExternalStorageDirectory() , "Myapp Pictures"); if(!dir
如何在Nexus 7上触发MediaScan?
因为我想确保MediaStore具有最新信息,而不必重新启动我想使用我在SO 上找到的流行方式触发MediaScanner context.sendBroadcast(new Intent(Intent.ACTION_MEDIA_MOUNTED, Uri.parse("file://" + Environment.getExternalStorageDirectory()))); 这对我的三星S2(带有ICS)很好,但在我的Nexus 7 w/jellybean上不行. logcat在我的Nexus 7: 上显示了这一点 WARN/ActivityManager(480): Permission denied: checkComponentPermission() owningUid=10014 WARN/BroadcastQueue(480): Permission Denial: broadcasting
16 2024-02-15
编程技术问答社区
如何在安卓系统中运行媒体扫描仪
我想在捕获图像时运行媒体扫描仪.捕获后,图像将在网格视图中进行更新.为此,我需要运行媒体扫描仪.我发现了两种解决媒体扫描仪的解决方案是广播事件,另一种是运行媒体扫描仪类.我认为在冰淇淋三明治(4.0)中介绍了媒体扫描仪类.在此之前,版本需要为运行媒体扫描仪设置广播活动. 任何人都可以指导我如何以正确的方式运行媒体扫描仪. 解决方案 如果您知道该文件名,我发现它最好(更快/最小开销)在特定文件上运行媒体扫描仪(VS运行以扫描所有文件).这是我使用的方法: /** * Sends a broadcast to have the media scanner scan a file * * @param path * the file to scan */ private void scanMedia(String path) { File file = new File(path); Uri uri = Uri.fromFi
22 2024-02-15
编程技术问答社区
刷新图片和视频的MediaStore
根据我的要求,我移动并删除了许多图像和视频,现在我使用 扫描媒体 Intent scanFileIntent = new Intent( Intent.ACTION_MEDIA_SCANNER_SCAN_FILE, uri); sendBroadcast(scanFileIntent); 都可以正常工作,但有时会冻结屏幕,我认为MediaScanner中的某个问题. 我的第二个Quetion是如何扫描所有媒体存储的收集器,而不是扫描perticuler文件. 预先感谢!! 解决方案 您应该尝试此解决方案以供amove并删除图像. 通过deleterecursive(fileorDirectory)内部文件目录路径,您可以从文件或目录中删除多个图像. public void deleteRecursive(File fileOrDirectory) { if (!fileOrDirectory.isDirectory()) return;
12 2024-02-14
编程技术问答社区
如何在安卓系统中收听新照片?
我需要收听来自任何来源的新图像,例如下载图像,捕获新图像,其他应用程序下载图像..ETC 每当将新照片添加到画廊中时,是否有任何听众会触发事件?我已经搜寻了两天.我无法获得任何坚固的东西. 我阅读了FileObserver,这会有所帮助吗? 解决方案 新照片到达画廊 表示已将其添加到MediaStore中. 首先,FileOberver是一种记忆杀手方法.考虑大量的文件.而是ContentObserver似乎是一种更好的方法. getContentResolver().registerContentObserver(android.provider.MediaStore.Images.Media.INTERNAL_CONTENT_URI, true, new ContentObserver(new Handler()) { @Override public void onChange(b
在Lollipop上使图像文件在安卓图库中可见
我试图制作一些在画廊中可见的应用程序中拍摄的图片(以便可以共享并在应用程序外部查看),但是我想将图像本身保留在应用程序的数据目录中因此,当删除该应用程序时,它们将被删除(因此将其存储在中" {sdcard}/android/data/{appid}/pictures/{subfolder}/" ). ). 我已经查看了很多答案,并且针对以下解决方案的旧版本都可以使用,但是它们似乎在Lollipop中没有工作: MediaScannerConnection.scanFile(this, new String[]{file.toString()}, new String[] { "image/jpeg" }, new MediaScannerConnection.OnScanCompletedListener() { public void onScanCompleted(String path, Uri uri) { L
捕获的图像没有显示在画廊中,但它成功地存储在SD卡中。
我是Android开发的新手,我正在使用UVCCamera UVCCamera的小型应用程序来捕获USB CAMREA图像 我使用UVCCamera捕获了图像,并将其存储在SDCARD中 File filepath = new File(Environment.getExternalStoragePublicDirectory(Environment.DIRECTORY_DCIM), "IMG_"+getDateTime() + ".jpg"); mCameraClient.captureStill(filepath.toString()); 在这里,mcameraclient将与UVC摄像机进行毁灭,并捕获图像并存储在该路径中,它将回调方法oncappuredone @Override public void onCaptureDone(final String path) { // TODO Auto-generated m
20 2024-02-14
编程技术问答社区
保存图像后,无法在安卓的画廊中看到它。
我使用InputStream和OutputStream将图像从res/drawable保存到Gallery.它可以正常工作并保存图像.但是问题是它不会在画廊中更新图像.如果我使用ES File Explorer检查文件夹,那么我可以在那里看到图像.我还检查了ddms,它还在执行write代码执行后尽快更新图像. 如果我保存服务器映像,它可以正常工作.如何防止这个问题?我想在图像保存后立即更新画廊. 我还尝试了MediaScanner扫描文件夹,但没有效果. 我的代码: Toast.makeText(context, "Downloading Image...\nPlease Wait.", Toast.LENGTH_LONG).show(); File direct = new File(Environment.getExternalStorageDirectory() + "/Im
24 2024-02-14
编程技术问答社区
用新创建的位图更新安卓图片库
我正在尝试将图像文件保存到外部存储.我可以将图片保存到SDCARD中,但在Android画廊应用程序中没有显示.我尝试了这种方法: File path = Environment.getExternalStorageDirectory(); File f = new File(path + "/mydirectory/" + imageName + "_" + System.currentTimeMillis() + ".jpg"); FileOutputStream fos = new FileOutputStream(f); f.mkdirs(); b.compress(CompressFormat.JPEG, 100, fos); fos.close(); Uri contentUri = Uri.fromFile(f);
6 2024-02-13
编程技术问答社区
在Android 5 Lollipop上用USB-MTP访问目录时,MediaScannerConnection#scanFile将目录转换为文件。
更改就像重命名由应用程序触发的文件一样,仅在重新启动Android设备或之后才显示在USB-MTP接口中href =" https://stackoverflow.com/questions/9414955/9414955/trigger-mediascanner-specific-petific-path-folder-how-how-to/25086535#25086535">触发特定路径上的MediaScanner a>): file.renameTo(newFile); MediaScannerConnection.scanFile(context, new String[] { newFile.getAbsolutePath() }, null, null); USB-MTP用于通过USB访问Android设备的存储.例如.使用Windows Explorer. 然而,在Android 5.0.2下的Sony Xperia Tablet
8 2024-02-12
编程技术问答社区
如何正确地通知MediaScanner关于一个文件夹,即使是在Nexus/Kitkat设备上?
背景 我正在制作一个应用程序,该应用程序从Internet下载一些图像中的特定文件夹,该文件夹定义为: final String pathToPutFiles = Environment.getExternalStoragePublicDirectory(Environment.DIRECTORY_PICTURES) + File.separator + DOWNLOAD_FOLDER_NAME; 我希望制作画廊和任何显示媒体的应用程序,以通知这些图像并能够显示它们. 可悲的是,我在Nexus 4上遇到了问题,该Nexus 4具有Kitkat版本(准确地说是4.4.2).有时它可以起作用,有时不行. 问题 有很多关于此问题的帖子,我尝试了很多,没有一个使用简单的文件夹路径来工作: 使用意图. > ,如图所示, 在这里 .这在任何设备上都不起作用 完成连接完成后,创建MediaScannerConnectionClient的
14 2024-02-12
编程技术问答社区
在安卓系统中保存公共文件,但文件夹不能被电脑访问
我正在尝试为我的应用程序创建一些公共文件夹来保存一些数据. 我的目标是根据当前日期创建一个主文件夹和一个子文件夹,以保存我的数据.该数据应该可以通过PC访问. 问题是当我通过电话访问文件[image 1](使用蓝牙文件传输应用程序)时,一切都在工作时,PC无法识别子文件夹[Image 2]. [图像1]所有在手机上工作 [图像2]在PC上未识别的子文件夹 我看了很多答案,尝试了很多,但没有找到解决方案. 我的代码是: public void createFile() { calendar_time = Calendar.getInstance(Locale.getDefault()); int hour = calendar_time.get(Calendar.HOUR_OF_DAY); int minute = calendar_time.get(Calendar.MINUTE); int second = calendar_time.
2 2024-02-11
编程技术问答社区
如何使标准音乐播放器找到我的文件
我的应用程序将一些MP3文件下载到SDCARD.我想与设备上安装的其他音乐播放器一起播放它们.但是其他音乐播放器没有自动找到我的下载文件.我如何强制媒体安全运行,以便我的媒体文件可以从股票音乐应用程序中播放? 我使用此代码下载文件 public void run() { loaded = 0; try{ java.io.BufferedInputStream in = new java.io.BufferedInputStream(new java.net.URL(url).openStream()); java.io.FileOutputStream fos = new java.io.FileOutputStream(FileName); java.io.BufferedOutputStream bout = new BufferedOutputStream(f
6 2024-02-11
编程技术问答社区