专家!
这是我在这里的第一个问题,我是Android应用程序开发的初学者,所以请原谅我,如果我的问题似乎是徒劳的。我正在开发我的Android应用程序,其中我试图获取Android手机的默认相机应用程序拍摄的照片数量。为此,我编写了以下代码。此代码在我的具有OS 4.x的Android设备上运行良好,而相同的代码在我的具有OS 6.x和7.x的Android设备上不起作用。
我的代码:
package com.local.cameraphotos;
import android.os.Environment;
import android.support.v7.app.AppCompatActivity;
import android.os.Bundle;
import android.util.Log;
import java.io.File;
public class MainActivity extends AppCompatActivity {
public void get_no_of_pictures(File directory){
int picture_count = 0;
int video_count = 0;
Log.e("Camera", "Going to get files in directory:" + directory);
if(directory != null) {
File[] files = directory.listFiles();
if(files != null) {
for (File CurFile : files) {
if (CurFile.isDirectory()) {
if(CurFile.getName().equals("100MEDIA")) {
Log.e("Camera", "Directory name:" + CurFile.getName());
get_no_of_pictures(CurFile);
}else if (CurFile.getName().equals("Camera")) {
Log.e("Camera", "Directory name:" + CurFile.getName());
get_no_of_pictures(CurFile);
}
}else if (CurFile.isFile()){
if(CurFile.getName().endsWith(".jpg"))
picture_count++;
else if(CurFile.getName().endsWith(".mp4"))
video_count++;
}
}
Log.e("Camera", "Total number of pictures:" + picture_count);
Log.e("Camera", "Total number of videos:" + video_count);
}else{
Log.e("Camera", "Unable to get list of files from CameraDirectory");
}
}
}
@Override
protected void onCreate(Bundle savedInstanceState){
super.onCreate(savedInstanceState);
setContentView(R.layout.activity_main);
File CameraDirectory = new File(Environment.getExternalStoragePublicDirectory(Environment.DIRECTORY_DCIM).getAbsolutePath());
get_no_of_pictures(CameraDirectory);
finish();
}
当我的代码尝试使用directory.listFiles()列出文件然后它在Android 7.x和6.x上返回null但在Android 4.x上返回有效值时会出现问题。
My Manifest如下所示
<?xml version="1.0" encoding="utf-8"?>
<manifest xmlns:android="http://schemas.android.com/apk/res/android"
package="com.local.cameraphotos">
<uses-permission android:name="android.permission.READ_EXTERNAL_STORAGE"
android:maxSdkVersion="25"/>
<uses-permission android:name="android.permission.WRITE_EXTERNAL_STORAGE"
android:maxSdkVersion="25"/>
<application
android:allowBackup="true"
android:icon="@mipmap/ic_launcher"
android:label="@string/app_name"
android:roundIcon="@mipmap/ic_launcher_round"
android:supportsRtl="true"
android:theme="@style/AppTheme">
<activity android:name=".MainActivity">
<intent-filter>
<action android:name="android.intent.action.MAIN" />
<category android:name="android.intent.category.LAUNCHER" />
</intent-filter>
</activity>
</application>
我非常感谢任何有关这方面的帮助,因为我已经在这个论坛上搜索了关于在Android文件系统上的目录下获取文件的链接,但我没有遇到过这样的情况。
先谢谢。
答案 0 :(得分:0)
你真的获得了许可吗?因为您的请求并不意味着您被授予了权限,特别是在版本&gt;中L.查找如何处理运行时权限并请求这些权限。