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

「デフォルト」では実行できません。アクションのデフォルトのインテントを選択(および削除または変更)できるのはユーザーのみです。そうでなければ、それは混乱になります!

[編集]

LarsVogelは常に良い読み物です。このチュートリアルを試してください。それはそれが得るのと同じくらい簡単です(ほとんど;)

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

于 2012-10-18T19:52:46.680 に答える
0

テキストファイルを処理するアクティビティにインテントフィルタを追加する必要があります。アプリをインストールすると、フィルターがOSに登録されます。ユーザーがファイルを起動しようとすると、Androidはリクエストを処理する登録済みアプリを尋ねます。

于 2012-10-18T20:00:14.230 に答える