我想从Android设备获取所有文档(Docs)文件。我使用ContentResolver和MediaStore.Files来实现。我可以从一种类型中获取所有文件,例如:pdf,但我想知道如何从多种类型中获取文件。
我的代码:
String selection = MediaStore.Files.FileColumns.MIME_TYPE + "=?" +
"";
String[] selectionArgs = new String[] { MimeTypeMap.getSingleton().getMimeTypeFromExtension("pdf")};
ArrayList<MyFile> list = new ArrayList<MyFile>();
Uri contentUri = MediaStore.Files.getContentUri("external");
String[] columns = {
MediaStore.Files.FileColumns.MIME_TYPE ,
MediaStore.Files.FileColumns.MEDIA_TYPE ,
MediaStore.Files.FileColumns.DATA ,
};
String SortOrder = null;
Cursor cursor = contentR.query(contentUri ,
columns ,
selection ,
selectionArgs ,
SortOrder);
我如何使用选择&amp; selectioArgs用于SQL中的多个条件:OR,AND ... selectionArgs将包含我正在寻找的所有文件类型:pdf,txt,doc ...
例如: Selection = MediaStore.Files.FileColumns.MIME_TYPE +&#34; =?&#34; +&#34;或&#34; + MediaStore.Files.FileColumns.MIME_TYPE +&#34; =?&#34; ;
SelectionArgs = {&#34; pdf&#34; ,&#34; txt&#34;};
感谢您的帮助或指导: - )
答案 0 :(得分:0)
您只需要为每种文件类型添加更多selectionArgs。或者您只需创建一个包含所有文件类型的列表或数组作为字符串。接下来,您只需要一个循环,它将转到下一个文件类型,直到不再剩下。 例如:
<Style x:Key="MyButtonStyle" TargetType="ButtonBase">
<Setter Property="Foreground" Value="Black"/>
<Setter Property="Template">
<Setter.Value>
<ControlTemplate TargetType="ButtonBase">
<Grid x:Name="RootGrid">
<VisualStateManager.VisualStateGroups>
<VisualStateGroup x:Name="CommonStates">
<VisualState x:Name="Normal"/>
<VisualState x:Name="PointerOver">
<Storyboard>
<ObjectAnimationUsingKeyFrames Storyboard.TargetProperty="Foreground" Storyboard.TargetName="ContentPresenter">
<DiscreteObjectKeyFrame KeyTime="0" Value="Blue" />
</ObjectAnimationUsingKeyFrames>
</Storyboard>
</VisualState>
</VisualStateGroup>
</VisualStateManager.VisualStateGroups>
<ContentPresenter
x:Name="ContentPresenter"
Foreground="{TemplateBinding Foreground}"
ContentTemplate="{TemplateBinding ContentTemplate}"
ContentTransitions="{TemplateBinding ContentTransitions}"
Content="{TemplateBinding Content}" />
</Grid>
</ControlTemplate>
</Setter.Value>
</Setter>
</Style>