java如何显示用户的列表。从sd卡以编程方式创建apk文件?
下面的代码应该枚举apk文件列表,但由于某些原因,它没有枚举。我正试图得到一份工作清单。apk文件编程,我可以选择一个。我可以选择安装该列表中的apk文件。可能吗
public class InstallAPKActivity extends Activity {
/** Called when the activity is first created. */
@Override
public void onCreate(Bundle savedInstanceState) {
super.onCreate(savedInstanceState);
setContentView(R.layout.main);
ExtFilter apkFilter = new ExtFilter("apk");
File file[] = Environment.getExternalStorageDirectory().listFiles(apkFilter);
Log.d("InstallApk", "Filter applied. Size: "+ file.length);
for (int i=0; i < file.length; i++)
{
Log.d("InstallApk", "FileName:" + file[i].getName());
Intent intent = new Intent(Intent.ACTION_VIEW);
intent.setDataAndType(Uri.fromFile(file[i]),
"application/vnd.安卓.package-archive");
startActivity(intent);
}
}
class ExtFilter implements FilenameFilter {
String ext;
public ExtFilter(String ext) {
this.ext = "." + ext;
}
public boolean accept(File dir, String name) {
return name.endsWith(ext);
}
}
}
# 1 楼答案
我尝试使用你的代码查看apk文件列表。我能够得到apk文件的列表
以下代码显示SD卡中存在的apk文件列表
# 2 楼答案
嗯,您必须递归地进行搜索。您所做的只是列出父目录中的文件
This Page说明如何遍历文件树
你也可以做谷歌搜索,但我发现甲骨文的官方页面更有用
我发现This Page更有用。本页讨论的是
PathMatcher
,它不适用于Android它使用
PathMatcher
类的唯一位置是:在这种情况下,您可以将
matcher.mathces(name)
替换为file.getName().endsWith(".apk")
,然后根据需要修改代码