我找到了OI文件管理器源代码的链接。我想把这个和我正在创建的应用集成在一起这样当intent
调用org.openintents.action.PICK_DIRECTORY
时,它应该显示OI文件管理器并要求用户选择一个文件夹。现在我可以通过在我的手机上安装OI文件管理器作为一个单独的应用程序来做到这一点。但我不希望在我的应用程序可以使用之前安装两个应用程序。因此,告诉我如何链接OI文件管理器代码与我的应用程序?
以便OI文件管理器和我的新应用程序都可以合并到一个.apk文件中。
最初我说你做不到,这是基于我去年没能做同样的事情。现在我看到了源代码,我假设您应该简单地将其包含在您的项目中,并在其中构建带有OI Manager源代码的项目。然后,您可以以同样的方式使用提供的意图。
This is my own Filemanager so will have problems ., try this its very simple
keeping a listview for files
public class Bview extends Activity{
private ListView l;
private int i;
private static int stringcounter=0;
public static File path;
public static String current;
private static File f;
private static String str;
private static String string=Environment.getExternalStorageDirectory()+"";;
private static String[] stringpart;
ArrayList<String> appointment;
ArrayAdapter<String> aa;
protected void onCreate(Bundle savedInstanceState) {
// TODO Auto-generated method stub
super.onCreate(savedInstanceState);
setContentView(R.layout.activity_view);
l=(ListView)findViewById(R.id.listView1);
appointment = new ArrayList<String>();
stringpart=new String[10];
aa = new ArrayAdapter<String>(this, android.R.layout.simple_list_item_1,appointment);
l.setAdapter(aa);
List<File> files = getListFiles(new File(string));
l.setOnItemClickListener(new OnItemClickListener() {
public void onItemClick(AdapterView<?> parent, View view,
int position, long id) {
if(position==0)
{
stringcounter--;
string=string.replaceAll(stringpart[stringcounter],"");
aa.clear();
List<File> files = getListFiles(new File(string));
}
else
{
Object o = l.getItemAtPosition(position);
str=(String)o;
string=string+"/"+str;
System.out.println("str"+str);
System.out.println(".value.."+string);
f=new File(string);
if(f.isDirectory())
{
stringpart[stringcounter]="/"+str;
stringcounter++;
aa.clear();
List<File> files = getListFiles(new File(string));
}
else
{
Toast.makeText(getBaseContext(),str,Toast.LENGTH_SHORT).show();
}
}
}
});
}
@Override
public void onBackPressed() {
// TODO Auto-generated method stub
super.onBackPressed();
System.exit(0);
}
private List<File> getListFiles(File parentDir) {
ArrayList<File> inFiles = new ArrayList<File>();
File[] files = parentDir.listFiles();
this.aa.add("Go Back");
for(i=0;i<files.length;i++)
{
String filename=files[i].getName();
this.aa.add(filename);
}
return inFiles;
}
}