3

私は何日にもわたって多くのグーグルをしました、そして、私はこの問題を解決することができませんでした。ImageViewユーザーがを呼び出して、またはその他のビュー要素をクリックしたときにクイック連絡先ダイアログを表示するアプリとウィジェットを作成していますQuickContact.showQuickContact()。何らかの理由で、Eclairを試してみるたびに、次のエラーがスローされます。

01-02 17:51:28.869:エラー/ AndroidRuntime(657):java.lang.RuntimeException:アクティビティを開始できませんComponentInfo {com.sx.favwidget / com.sx.favwidget.PopupActivity}:android.content.ActivityNotFoundException:いいえインテントを処理することが見つかったアクティビティ{act=com.android.contacts.action.QUICK_CONTACT dat = content://com.android.contacts/contacts/lookup/0n4D29415739 flg = 0x14200000(追加機能あり)

(logcatの残りの部分は省略しましたが、必要に応じて元に戻すことができます)

フローズンヨーグルトでまったく同じコードを試してみると、うまくいきます。フローズンヨーグルトユーザーだけを対象にアプリを設定したくありません。最小OSレベルとして2.1を対象としています。Stack Overflowで、QuickContactsを表示するのに苦労している他の人を見つけました。

QuickContactBadgeを使用することもできますが、これはEclairで機能しますが、AppWidgetでQuickContactBadgeが許可されていないため、代わりにこれを実行します。Androidのソースコードを調べて、レイアウトを作成するための関連するXMLファイルとコードを見つけましたが、すべてのプライベートAPI呼び出しで大きな頭痛の種になるため、自分で簡単にコンパイルすることはできません。

これが私のコードです。簡単だ。

grid.setOnItemClickListener(new OnItemClickListener() {

    public void onItemClick(AdapterView<?> parent, View v, int position, long id) {

        String name = ((TextView)v.findViewById(R.id.grid_item_label)).getText().toString();

        Cursor sc = getContentResolver().query(Contacts.CONTENT_URI, new String[] {Contacts.LOOKUP_KEY,   Contacts._ID}, Contacts.DISPLAY_NAME + "= ?", new String[] {name}, null);

        sc.moveToFirst();          

        String lookup_key = sc.getString(sc.getColumnIndex(Contacts.LOOKUP_KEY));

        Uri uri = Uri.withAppendedPath(ContactsContract.Contacts.CONTENT_LOOKUP_URI, lookup_key);

        QuickContact.showQuickContact(getApplicationContext(), v, uri, QuickContact.MODE_SMALL, null);

        }
}

EclairではなくFroyoで動作するのは非常に奇妙ですが、API呼び出しはAndroid2.0以降に存在します。誰かがここで私を助けることができますか?

本当にありがとう!!!

4

1 に答える 1

1

私も少し前にこれを解決しましたが、方法を投稿するのを忘れました。私がしたことは、透明な新しいアクティビティを開始することでした。そして、インテントが開始された長方形を取得しました。このアクティビティにはQuickContactBadge要素しかないため、長方形を使用して配置し、クリックアクションを自動的に実行しました。これが表示されたら、アクティビティを終了しましたが、バッジは残っています。したがって、ユーザーがQuickContactBadgeをクリックすると、開始した場所に戻ります。

私はあなたの(オメガモン)コードを完全に熟読する機会を得ませんでした-あなたの方法は私のものと似ていますか?

于 2011-08-18T04:06:28.637 に答える