listFiles(),但忽略Android中的一个子目录

我需要得到一个文件列表,但忽略一个特定的子目录。 例如这里是一个示例结构。 Content ->1 –>file_a.mp4 –>file_b.mp4 ->2 –>file_c.mp4 –>file_d.mp4 ->Bonus –>1 —>file_e.mp4 —>file_f.mp4 我需要能够获得排除奖励目录的文件/目录列表。 我还需要单独列出奖励目录的文件,但我认为这可以通过使用常规方法轻松解决。 如何执行列表文件,但忽略目录? 这是我的示例代码将返回一切 final List boxsets = getCloudBoxsetsWithTrackData(context); final File[] boxsetFiles = dir.listFiles(); if (boxsetFiles != null) { for (File subDir : boxsetFiles) { if (subDir.isDirectory()) { for (Boxset boxset : boxsets) { if (subDir.getName().equalsIgnoreCase(String.valueOf(boxset.persistentId))) { DBHandler.getInstance(context).moveBoxsetToDeviceList(boxset); DownloadLibrarian.getInstance(context).stopDownload(boxset); } } } […]

如何检查ContentProvider可用于Intent(或阻止特定的一个)

我使用Intent机制让用户通过标准的方式选择图像 val intent = Intent(Intent.ACTION_GET_CONTENT) intent.type = “image/*” intent.addCategory(Intent.CATEGORY_OPENABLE) ctx.startActivityForResult(intent, RequestCodes.SelectPhoto) 然后我将Uri传递给另一个活动,可能会裁剪照片。 我需要之前的Uri做一些预先检查。 在Android模拟器上,像Photos(默认)这样的默认提供程序会让我的整个应用程序有权打开Uri,而不仅仅是请求活动。 然而,在亚洲有一个“奇怪”的提供者, com.miui.gallery.provider.GalleryOpenProvider并没有 – 在com.miui.gallery.provider.GalleryOpenProvider器中发生了一个邪恶的SecurityException。 所以我尝试使用ACTION_OPEN_DOCUMENT,根据规范说,它会给我的整个应用程序权限,直到设备重新启动,但不幸的是,一个不支持在模拟器云中的谷歌照片。 所以我正在寻找一种方法来确定是否将列表中的com.miui.gallery.provider.GalleryOpenProvider在com.miui.gallery.provider.GalleryOpenProvider ,如果是这样,要么阻止它,否则回落到使用ACTION_OPEN_DOCUMENT。 我希望避免在把Uri交给收割机之前将其拷贝,作物活动无论如何都将其视为只读。 这是启动作物(kotlin)的全部function。 CropActivity是对旧版开源图库应用com.android.gallery3d的修改。 private fun startCrop(ctx: Activity, uri: Uri) { val intent = Intent(ctx, CropActivity::class.java) intent.data = uri val file = this.createImageFile(ctx, “photofinal”) if (file == null) { this.showStorageUnavailable(ctx) return } val outputUri = […]

根据宽度放置GridLayout的子项

我有一个GridLayout,他们的孩子有相同的固定大小。 我想让孩子们适应可用的宽度: 在一个例子中: || | @1 @2 @3 @4 | | @5 | 在另一个: | @1 @2 | | @3 @4 | | @5 | auto_fit像一个GridView与auto_fit启用。 (但我不能使用GridView的原因,请不要建议。) 为此,我想知道可用宽度后,计算列的数量并设置每个子的LayoutParams(即行列索引)。 现在,在父片段的onCreateView中,GridLayout的宽度还不可用。 所以我设置了numColumns ,添加孩子,让他们自动定位,然后我想重新定位孩子。 我发现的最合理的地方是在布局更改侦听器( gridLayout.addOnLayoutChangeListener )中执行此操作,因为此时GridLayout的宽度是可用的。 但是,当我改变孩子的布局参数,然后调用gridLayout.requestLayout (1)时,没有任何反应(即孩子仍然具有onCreateView之后的相同位置)。 我也试图在每个子setLayoutParams (2)上调用setLayoutParams ,但是会产生requestLayout从布局监听器被错误地调用的警告,而且这些子requestLayout仍然没有被重新定位。 这里的代码(在Kotlin,但我希望很可读): gridLayout.addOnLayoutChangeListener { v, left, top, right, bottom, oldLeft, oldTop, oldRight, oldBottom -> val width = […]

Web服务器可以在客户端发送完整请求之前开始响应吗?

我正在为一个学术研究小组编写一个Web应用程序。 研究人员需要能够以CSV格式上传大型数据集(100MB – 1GB)。 我已经编写了服务器来处理数据。这意味着如果在CSV的第一行出现错误,我们可以立即返回一个错误。 但是,如果发生这种情况,浏览器会报告“连接已重置”或类似情况。 很明显,我的网络服务器的响应方式是没有意义的。 如果在将错误返回给浏览器之前,我明确地关闭了HTTP请求流(这是JVM上的Kotlin),那么问题就会消失。 然而,事实certificate,请求流的紧密实现首先进行,并将整个流读取到最后。 那么在这一点上,用户仍然需要等30分钟才能发现他们的CSV的第一行有错误。 我正在尝试做什么? 在任何情况下,HTTP协议是否允许Web服务器在完整的请求主体发送之前开始响应? 如果没有,你能否提出一个解决方法,让我提供一个用户体验,在用户不需要等待整个文件上传之前,发现是否有任何问题?

DataJPATest Junit方法命名和NullPointerExceptions

我正在使用SpringBoot / Kotlin / JPA / Hibernate / Junit,并且拥有JpaServiceTest类,可以执行与单个实体有关的存储库方法。 JpaService类的方法名遵循约定findByXXXXId , findAll , addXXXX , addXXXX和deleteXXXX 。 为了保持一致性,我使用相同的约定为JpaTest类中的方法命名。 我的JpaTest类有两个findById场景,其中’Null’预期是另一个返回映射实体的地方。 我的应用程序按预期方式工作,但是我的测试类在findById方案上失败,这个方案有望返回一个有效的实体。 The service class @Service(“MyService”) @Transactional internal class JpaMyService(val MyRepo: MyRepository) : MyService { val log = LoggerFactory.getLogger(“MyService”) override fun findByMyId(MyId: Long): MyDto? { log.debug(“Retrieving My: {}”, MyId) return MyRepo.findOne(MyId)?.toDto() } override fun findAllMys(): List { […]

订阅多个视图到一个视图onclick和可见性改变RxAndroid

我新使用RxJava,并且仍然熟悉很多概念。 试图在一个项目中使用它,我想要做的是订阅一个视图的点击事件来改变另一个视图的可见性。 这是我的审判工作。 RxView.clicks(info_overlay).map { _ -> View.GONE }.subscribe { AppCache().hasSeenInfoScreen = true info_overlay_child_take_a_helfie.visibility = it info_overlay_child_subscription.visibility = it info_overlay_child_description.visibility = it info_overlay_child_header.visibility = it } 不过,我也想订阅info_overlay可见性。 这样info_overlay的可见性info_overlay影响其他视图。 我如何实现这一点和点击观察在一起。

不能@Required或@NotNull

在使用REALM版本4.3.3进行Android开发时,出现以下错误: Error: Field “groupName” with type “pizware.evaluapp.Models.Group” can not be @Required or @NotNull. 但是我没有在任何领域使用这些标签。 有谁知道发生了什么事?

Android的AltBeacon测距没有find任何东西

我正在使用这里提供的标准示例,除非我修改它来记录,如果没有发现确保它实际上被调用。 @Override public void onBeaconServiceConnect() { beaconManager.addRangeNotifier(new RangeNotifier() { @Override public void didRangeBeaconsInRegion(Collection beacons, Region region) { if (beacons.size() == 0) { Log.i(“ActivityMain”, “no beacons found”); } if (beacons.size() > 0) { Log.i(“ActivityMain”, “The first beacon I see is about ” + beacons.iterator().next().getDistance() + ” meters away.”); } } }); try { beaconManager.startRangingBeaconsInRegion(new Region(“myRangingUniqueId”, null, […]

在使用自定义的AttributeConverter for Neo4j时获取Neo.ClientError.Statement.TypeError Spring Boot JPA

我有一个与Spring Data Neo4j(v5.0.0RC2),Neo4j(v3.2.1)和Neo4j OGM(v3.0.0)一起运行的Kotlin(v1.1.4)Spring Boot(v2.0.0.BUILD-SNAPSHOT)应用程序。 尝试对具有自定义AttributeConverter的字段使用自定义JPA @Query时收到以下错误。 堆栈跟踪: org.springframework.dao.InvalidDataAccessResourceUsageException: Error executing Cypher; Code: Neo.ClientError.Statement.TypeError; Description: Property values can only be of primitive types or arrays thereof; nested exception is org.neo4j.ogm.exception.CypherException: Error executing Cypher; Code: Neo.ClientError.Statement.TypeError; Description: Property values can only be of primitive types or arrays thereof at sun.reflect.NativeConstructorAccessorImpl.newInstance0(Native Method) at sun.reflect.NativeConstructorAccessorImpl.newInstance(NativeConstructorAccessorImpl.java:62) at sun.reflect.DelegatingConstructorAccessorImpl.newInstance(DelegatingConstructorAccessorImpl.java:45) at […]

如何从Firebase数据库中删除用户

所以我想添加一个用户删除他的帐户到我的应用程序的function..简单的权利? 我看文件,它很容易: FirebaseAuth.getInstance().getCurrentUser().delete() 但是,FirebaseDatabase和Storage中的所有数据仍然保留。 这是我的结构(给予或承担) 在firebase存储它更简单一点,所以我不包括在这个问题.. 现在的问题是,用户几乎与所有的节点有关联,并且有很多地方需要删除。 从android设备用户发送“DeleteUserRequest”到服务器,服务器负责删除用户。 但做完方法后,它的地狱! 我需要借用爸爸的显示器来编码,因为太深的嵌套调用! 这里是方法 public static void deleteUser(DeleteUserRequest request, ExecutorService executorService) { deleteUserReferences(request.getUserId(), executorService); deleteUserStorage(request.getUserId()); } /** * Delete Tree * – /grades/userId * – /subjects/userId * – /user_groups/userId -> save groupIdList * – /group_members/groupId/userId * – /groups/groupId/ [where createdBy=userId] save friendIdList * – /user-friends/friendId/userId * – /user_tokens/userId […]