0

私は、連絡先ピッカー機能をアプリに追加する機能と、アプリからネイティブの連絡先マネージャーに連絡先を追加する機能に取り組んでいます。挿入するために、私は次のように連絡先管理者を立ち上げています:

Intent intent = new Intent(ContactsContract.Intents.Insert.ACTION);

intent.setType(ContactsContract.RawContacts.CONTENT_TYPE);
intent.putExtra(ContactsContract.Intents.Insert.PHONE, mCurrentNumber);
intent.putExtra(ContactsContract.Intents.Insert.PHONE_TYPE, "MyType");

mActivity.startActivityForResult(intent, ADD_CONTACT);

これにより、連絡先マネージャが正常に開き、指定した電話番号が入力されます。ただし、Nexus 7タブレットでは、連絡先マネージャーが戻るとメイン画面に戻り、アプリに応答を送信しません。これは正常に機能し、ICSデバイスで期待どおりに戻りますが、Nexus 7がGoogleのものであるのに対し、ICSデバイスがメーカーのカスタムコンタクトマネージャーを使用しているためかどうかはわかりません。

誰かがこの問題に光を当てることができますか?コンタクトマネージャーの起動方法に問題はありますか?

編集:Nexus7のContactManagerオプションメニューから[Discard]を選択すると、期待どおりにアプリに戻ることも追加する必要があります。問題が発生するのは、「完了」ボタンを選択した場合のみです。[完了]を選択すると、Contact Managerのメインメニューに移動します。その時点で、Contact Managerを終了しようとすると、ユーザーはホーム画面に移動します。

4

1 に答える 1

1

これに対する修正は、追加することでした。

intent.putExtra("finishActivityOnSaveCompleted", true);

連絡先に。これにより、連絡先マネージャーの詳細ビューがバイパスされ、onActivityResultを適切に呼び出して、制御がアプリに戻されました。

于 2013-02-14T16:49:46.017 に答える