我希望我的用户能够查看&当他们点击“浏览”按钮时导航Android设备的目录,这样他们就可以选择存储照片的文件夹。
截至目前,我可以进入“adb shell”,但是当通过adb shell连接到设备时,我无法再输入任何命令进行交互。我想通过adb shell和cd连接到设备,或者在连接到设备后运行其他命令。我当前的代码非常糟糕,因为我不明白“stdout = subprocess.PIPE”是什么意思,我只是关注一些在线教程。
这是我目前的代码:
from subprocess import check_output
import subprocess
out = check_output("adb shell ls")
print out
destination = raw_input("Choose a folder: ")
p = subprocess.Popen("adb shell",stdout=subprocess.PIPE)
out, err = p.communicate()
g = subprocess.call(['cd', destination], stdout=subprocess.PIPE)
out, err = g.communicate()
print out
我感谢任何帮助和指导。提前谢谢。
答案 0 :(得分:0)
我建议您使用Android功能来迭代目录和文件。例如,您创建一个新文件,当然如果您使用Java创建它(并且可能更容易):
File currentDir = new File("/"); // "/" stands for root directory
File[] files = currentDir.listFiles(); // lists all files in the current directory, store them in the *files* array
//you can supply as an argument a String[] array, with the file extensions if needed
//(to show only .jpeg, .png, or only documents like .docx, .pdf)
//you can use Collections and Comparator classes to sort them
if(files != null && files.length > 0) { //check if it holds any files
for(File f : files) {
if(f.isHidden()) {
// don't add the hidden file to the list, or at your choice
continue;
} else {
// add the file to the list
fileList.add(f);
}
}
Collections.sort(fileList, new FileComparator()); //
}
//you can also check if a specific *file* is file or directory with
file.isFile();
file.isDirectory();
您可以使用有关文件的所有信息在ListView或GridView中显示它们,点击特定项目,您可以更新 currentDir 并刷新内容或打开文件等
以下是文件选择器http://www.dreamincode.net/forums/topic/190013-creating-simple-file-chooser/
的示例