0

ID のリストがあり、クリックするとそれぞれが vCard の Web URL にリンクされます。私の目標は、ユーザーが ID をクリックすると、vCard データを表示する新しいページに移動することです。onItemClick で vCard データを解析し、解析された vCard データを含む新しいビューを表示します。

これを検索しましたが、Web から直接インポートしてアプリケーションに詳細を表示できるものは見つかりません。私が見つけることができるすべてのチュートリアルは、ローカル ファイルからデータを解析する前に、vCard データを SD カードにダウンロードする手順を実行する必要があるようです。SDカードを介さずにこれを行う方法はありますか?

私のコード:

    public void onItemClick(AdapterView<?> parent, View view, int pos, long id) {
    Intent i = new Intent(Intent.ACTION_VIEW);      
    Uri.Builder b = Uri.parse("http://www.cs.auckland.ac.nz/our_staff/vcard.php").buildUpon();
    b.appendQueryParameter("upi", items.get(pos));
    Uri uri = b.build();

    ContentResolver cr = activity.getContentResolver();
    InputStream stream = null;
    try {
        stream = cr.openInputStream(uri);
    } catch (FileNotFoundException e) {
        // TODO Auto-generated catch block
        e.printStackTrace();
    }

    StringBuffer fileContent = new StringBuffer("");
    int ch;
    try {
        while( (ch = stream.read()) != -1)
          fileContent.append((char)ch);
    } catch (IOException e) {
        // TODO Auto-generated catch block
        e.printStackTrace();
    }
    String data = new String(fileContent);
    Log.i("TAG", "data: " + data);  
}   

}

私に例外を与えます:

    05-26 11:29:09.723: W/System.err(781): java.io.FileNotFoundException: No content provider: http://www.cs.auckland.ac.nz/our_staff/vcard.php?upi=kng001
05-26 11:29:09.723: W/System.err(781):  at android.content.ContentResolver.openTypedAssetFileDescriptor(ContentResolver.java:710)
05-26 11:29:09.733: W/System.err(781):  at android.content.ContentResolver.openAssetFileDescriptor(ContentResolver.java:614)
05-26 11:29:09.733: W/System.err(781):  at android.content.ContentResolver.openInputStream(ContentResolver.java:449)
05-26 11:29:09.733: W/System.err(781):  at com.lim.json.StaffListListener.onItemClick(StaffListListener.java:53)

奇妙なことに、例外http://www.cs.auckland.ac.nz/our_staff/vcard.php?upi=kng001の URLは実際には正しい URL です。私はそれをテストしましたが、有効です。なぜまだこの例外なのですか?

4

0 に答える 0