草庐IT

offline-storage

全部标签

java - SAF(Storage Access Framework) 是否解决了 Android 4.4 (KitKat) 中的 SD 卡 WRITE 问题?

在Android4.4中,来自PlayStore的应用程序只能写入它的应用程序特定目录(例如:/storage/extSdCar/Android/data/com.example.myapp/)并且不允许应用程序写入此目录以外的目录微型SD卡。因此,我正在探索新的SAFAPI,以检查我是否可以使用SAF写入应用程序特定目录以外的microSD卡。我通过创建示例提供程序和客户端应用程序实现了SAF。在我的提供者中,我试图通过在queryRoots中实现以下代码来显示SD卡的全部内容:row.add(Root.COLUMN_DOCUMENT_ID,getDocIdForFile(newFi

android - 何时广播 ACTION_DEVICE_STORAGE_LOW Intent ?

在我的应用程序中,我注册了一个广播接收器来接收系统IntentACTION_DEVICE_STORAGE_LOW。我期待只要手机内存不足就会广播这个。因此,我下载了一些额外的应用程序(我的手机内存非常小),导致操作系统显示系统内存不足的通知。手机剩余10-15MB。但是,我的广播接收器从未收到过该Intent。然而,系统通知一直停留在通知栏,内存不足无法上网。每当显示内存不足通知时,是否应该广播此Intent?或者是否有一些更低的内存阈值会发送我尚未在手机上播放的广播?在文档中,它只说“广播操作:表明设备内存不足的粘性广播”。因为它实际上并没有定义“低内存条件”,所以我不知道是我做错了

android - "Couldn’ t install on USB storage or SD card”在三星设备上安装应用程序时出错

问题是我开始收到应用程序用户的提示,说他们未能在他们的设备上安装我们的客户端。大多数设备都是带有OS2.2和2.3的三星安装过程完成(或几乎完成)后他们看到的错误是:“无法安装到USB存储设备或SD卡上”我已经检查并确认有足够的空间在这些设备上安装该应用程序。当然,我尝试删除SD卡功能(从AndroidManifest.xml文件中删除了“android:installLocation="preferExternal""行,但此更改导致所有有问题的设备在安装完成后自行重启(设备只需在安装即将完成时重新启动即可)。不用说,我无法调试它,因为我们的应用程序代码还没有开始运行。我找到了一些关

Android Studio启动虚拟器后出现emulator-5554 offline

        在启动AndroidStudio启动虚拟器后,有时会出现emulator-5554 offline情况,同时adbdevices的时候显示一个”emulator-5554offline“设备,称为幽灵设备。        且进行adbroot后,也会导致出现morethanone设备,而无法root,这个虚拟的幽灵设备emulator-5554无法通过adbdisconnect来移除,就会导致无法连接新的adb设备进行开发。        解决方案(自测有效):1)输入命令:netstat-ano|findstr5554  CMD指令netstat-ano|sls5554   

OS 4.0 上的 Android Marshmallow 权限模型始终未授予 READ_EXTERNAL_STORAGE 权限

我在AndroidOS4.0上运行我的应用程序并请求READ_EXTERNAL_STORAGE权限时遇到问题:ActivityCompat.requestPermissions(ctx,requestedPermissions,requestCode);我总是得到回调publicvoidonRequestPermissionsResult(intrequestCode,@NonNullString[]permissions,@NonNullint[]grantResults){grantResults!=PackageManager.PERMISSION_GRANTED使用Activi

c++ - 为什么 std::aligned_storage 的分配总是有一个偏移量?

分配std::aligned_storage::type时在堆上,我总是得到一个偏移16个字节的指针(在x64上;在x86上它偏移8个字节)。换句话说,这:#include#includeintmain(){typedefstd::aligned_storage::typeMemPage;MemPage*p_mp=newMemPage;std::cout给我(例如)0x72f010尽管我希望最后三位数字全部为零。分配std::aligned_storage::type时在堆栈上,一切都按预期工作。我在ubuntu14.04上使用gcc-4.8.2x86_64。

c++ - 带有 C++ 模板的虚假 "use of local variable with automatic storage from containing function"?

以下代码无法在g++7.2.0中编译templateclassRequest{intcontent=0;public:friendvoidsetContent(inti,void*voidptr){Request*ptr=(Request*)voidptr;ptr->content=i;}intgetContent(){returncontent;}};intmain(){Requestreq;setContent(4,&req);returnreq.getContent();}有错误test.cpp:Ininstantiationof‘voidsetContent(int,void*

c++ - 等价于 C 中的 std::aligned_storage<>?

在C语言中,有没有一种方法可以使堆栈上的存储过度对齐(即比从类型系统推断出的对齐更多)?对于动态分配的内存中的变量,如果所有其他方法都失败了,我们总是可以手动对齐,但是对于自动分配的内存中的变量可以做什么呢?我想可以使用char[size+alignment-1]然后总是使用位操作来访问变量,但这似乎比必要的“有点”暗淡(harharhar;)). 最佳答案 在C2011中,有_Alignas和_Alignof关键字,标题这使得它们的使用稍微不那么难看,类型max_align_t(在中)。例如,你可以写double_Alignas(

c++ - std::align 和 std::aligned_storage 用于内存块的对齐分配

我正在尝试分配一个大小为size的内存块,它需要Alignment对齐,而在编译时可能未定义大小。我知道存在_aligned_alloc、posix_memalign、_mm_alloc等例程,但我不想使用它们,因为它们会降低代码的可移植性。C++11提供了一个例程std::align和一个类std::aligned_storage,我可以从中检索POD类型进行分配一个将符合我的要求的元素。然而,我的目标是创建一个分配器,它将分配一个size大小的内存块(不仅仅是单个元素),该内存块将被对齐。这可能使用std::align吗?我问的原因是因为std::align移动指针,使用该指针的类

c++ - std::optional 实现为 union vs char[]/aligned_storage

在阅读GCC对std::optional的实现时,我注意到了一些有趣的事情。我知道boost::optional实现如下:templateclassoptional{//...private:boolhas_value_;aligned_storagestorage_;}但是libstdc++和libc++(以及Abseil)都像这样实现它们的可选类型:templateclassoptional{//...private:structempty_byte{};union{empty_byteempty_;Tvalue_;};boolhas_value_;}在我看来,它们在功能上是相同的