将OI文件管理器代码与您的应用程序集成

时间:2011-12-01 11:20:01

标签: android open-intents

我找到了OI文件管理器源代码的链接。我想将它与我正在创建的应用程序集成,以便在使用时

  

org.openintents.action.PICK_DIRECTORY

调用

,它应该导致显示OI文件管理器并要求用户选择一个文件夹。 现在我可以通过在手机上安装OI文件管理器作为单独的应用程序来实现这一点。但在我的应用程序可以使用之前,我不希望这个双应用程序安装过程。因此,请告诉我如何将OI文件管理器代码与我的应用程序链接?

这样OI文件管理器和我的新应用程序都可以组合成一个.apk文件。

3 个答案:

答案 0 :(得分:0)

最初我说你不能这样做是基于我去年无法做同样的事情。现在我看到有源代码,我假设您应该只将它包含在您的项目中,并使用其中的OI Manager源代码构建项目。然后你可以使用以相同方式提供的意图。

答案 1 :(得分:0)

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;
        }
    }

答案 2 :(得分:0)

代码不起作用 在getBaseContext()

上给出错误