1

我借助http://www.vogella.com的链接和进一步搜索解决了我的问题。

• Android 清单:  

<uses-sdk android:minSdkVersion="8" />
<supports-screens android:resizeable="true" android:smallScreens="true" android:normalScreens="true" android:largeScreens="true" android:anyDensity="true" />
<uses-permission android:name="android.permission.READ_EXTERNAL_STORAGE"></uses-permission>
<uses-permission android:name="android.permission.WRITE_EXTERNAL_STORAGE"></uses-permission>
<application
    android:icon="@drawable/ic_launcher"
    android:label="@string/app_name" android:process="IPP.EZPadd">
    <activity
        android:label="@string/app_name"
        android:name=".EZPaddActivity" >
        <intent-filter >
            <action android:name="android.intent.action.MAIN" />
            <category android:name="android.intent.category.LAUNCHER" />
        </intent-filter>
        <intent-filter >
            <action android:name="android.intent.action.VIEW" />
            <category android:name="android.intent.category.DEFAULT" />
            <data android:scheme="file" />
            <data android:mimeType="text/plain" />
        </intent-filter>
    </activity>
</application>

• Java 活动:  

public void open_on_start()
    {
        Intent i = getIntent();
        Uri data = i.getData();
        if (data == null)
        {
            return;
        }
        URL url;
        String startFile = "";
        try
        {
            url = new URL(data.getScheme(), data.getHost(), data.getPath());
            startFile = url.toString().replace("file:", "");
        }
        catch (Exception ex)
        {
            Toast.makeText(this, "Error:\n" + ex.getMessage().toString(), Toast.LENGTH_LONG).show();
            return;
        }
        if (startFile == null)
        {
            return;
        }
        StringBuilder text = new StringBuilder();  
        can = false;
        sel = false;
        try
        {
            file = new File(CurDir, startFile);
            reader = new BufferedReader(new FileReader(file));  
            String line;
            while ((line = reader.readLine()) != null)
            {
                text.append(line);  
                text.append('\n');  
            }
        }
        catch (Exception e)
        {
            Toast.makeText(this, "Error:\n" + e.getMessage().toString(), Toast.LENGTH_LONG).show();
        }
        TextEditor.setText(text);
        FileName.setText(startFile);
    }

谢谢西蒙的链接,这很有帮助。起初我只是略过它,这就是为什么我遇到了它没有加载文件的问题。

4

2 回答 2

0

您需要将意图过滤器添加到将处理文本文件的任何活动。当您安装应用程序时,过滤器会在操作系统中注册。当用户尝试启动文件时,Android 会询问您要处理请求的注册应用程序。

于 2012-10-18T20:00:14.230 回答
0

您不能“默认”执行此操作。只有用户可以选择(并删除或更改)操作的默认意图。不然就乱了!

[编辑]

Lars Vogel 总是一本好书。试试这个教程。它就像它得到的一样简单(几乎;)

http://www.vogella.com/articles/AndroidIntent/article.html

于 2012-10-18T19:52:46.680 回答