我已经实现了一个自定义内容提供程序,将pdf文档作为ParcelFileDescriptor提供。文件存储在标记为PRIVATE的本地存储中。然后根据URI将文档移交给选定的pdf应用程序。这适用于除adobereader之外的所有PDF查看器应用程序。有人可以确认adobereader不与内容提供商合作吗?代码如下:文件下载完成后:privatevoidloadDocInReader(Stringdoc)throwsActivityNotFoundException,Exception{Uriuri=Uri.parse(doc);logger.debug("PDFApplicatio
目前我正在我的公司做一些关于voip应用程序的研究。我们想在amr中记录设备麦克风的声音,对其进行加密并将数据发送到我们的服务器,另一端从服务器流式传输并解密。对于一些测试用例,我目前使用MediaRecorder在amr中录制声音。因为我想连续流式传输当前的声音,所以我不能使用文件来存储数据。所以我创建了一个管道并将其作为文件描述符提供给MediaRecorder-Reference。MediaRecordermediaRecorder=createMediaRecorder();//makeapipecontainingareadandwriteparcelFdtry{Parcel
我正在尝试每25秒连接到配对的蓝牙设备,通过AlarmManager安排,它会触发WakefulBroadcastReceiver以启动服务以进行连接。设备进入休眠状态后,前几个小时一切正常,但大约4-5小时后开始出现故障,此时我假设设备进入深度sleep。我从ParcelFileDescriptor得到一个NullPointerException,指出“FileDescriptor不能为空”。我已经尝试搜索此错误,甚至还查看了ParcelFileDescriptor.java中的代码,但我已无路可走。我在装有Android4.4.2的Nexus10上运行它。尝试连接的代码如下:pub
我正在尝试在我的Android应用程序中创建一个按钮,允许用户使用他们选择的社交媒体网络共享图像。图像文件存储在应用程序的Assets文件夹中。我的计划是实现一个自定义的ContentProvider以提供对图像的外部访问,然后发送一个TYPE_SENDIntent以指定我的内容提供程序中图像的uri。我已经这样做了,它适用于Google+和GMail,但对于其他服务却失败了。最困难的部分是找到有关我应该从ContentProvider的query()方法返回的内容的信息。一些应用程序指定一个投影(例如Google+要求提供_id和_data),而一些应用程序将null作为投影传递。即
内容提供者消费者的客户端我可以做这样的事情,以获得适当的InputStream来读取图片:InputStreamis=getContentResolver().openInputStream(pictureUri);这是一个很好的API,在服务器端,实际的内容提供者会调用:publicParcelFileDescriptoropenFile(Uriuri,Stringmode)throwsFileNotFoundException{//OpenaproperParcelFileDescriptor,mostlikelyusingopenFileHelper(uri,mode)}但是,如
当我尝试为我的VpnService创建隧道接口(interface)时,出现以下错误:Attempttoinvokevirtualmethod'java.lang.Stringandroid.os.ParcelFileDescriptor.toString()'onanullobjectreference我目前唯一的解决办法是在发生这种情况时重启设备。否则,我根本无法创建隧道。我创建隧道的代码://ThisisinsidemyVpnServiceimplementationprivateParcelFileDescriptorconfigureTunnelWithPushOpts(Pu
你如何理解这篇笔记Note:AContentProvidermightbeamoreappropriateplacetostorecachedimagesiftheyareaccessedmorefrequently,forexampleinanimagegalleryapplication.在这篇培训文章中https://developer.android.com/training/displaying-bitmaps/cache-bitmap.html?由于我无法从Cursor获取Bitmap或File,我如何通过ContentProvider缓存位图?
当连接到USB配件时,我很难恢复我的Android应用程序。显然我的ParcelFileDescriptor是空的,当我调用onResume()方法时openAccessory()没有返回任何东西。有人体验过吗? 最佳答案 似乎已修复,USB管道中有未读消息。USB配件未读取Android发送的消息。这就是App无法从onResume()获取新的ParcelFileDescriptor的原因。 关于java-openAccessory的返回值到底是多少?,我们在StackOverflow
我整理了一个小testwebapp将HTMLCanvas转换为图像(通过使用Nihilogic的canvas2imageJavaScript库),然后用生成的图像替换Canvas并显示一条消息,通知用户触摸(长按)该图像以保存它到他们的电话。我遇到的问题是Android的默认网络浏览器(“Internet”)不呈现表示图像的base64编码数据流,而是显示一个问号符号。有办法解决这个问题吗?如果是,那么如何? 最佳答案 使用自定义ContentProvider并覆盖openFile()以将流作为临时文件返回。可以在htmlA标签中使
我想通过使用ParcelFileDescriptor.createPipe()将InputStream从一个Android服务“发送”到在不同进程中运行的另一个服务。,一个流到流的复制线程和一个ParcelFileDescriptor,代表管道的读取端,它通过BinderIPC提供给其他服务。发送代码(流程A)我想将给定的InputStream发送到接收服务:publicsendInputStream(){InputStreamis=...;//that'sthestreamforprocess/serviceBParcelFileDescriptorpdf=ParcelFileDes