1

私はいくつかの特別なプロジェクトに取り組んでいます。

JNIを介してC++でAndroidの連絡先データを取得したい

これが私のJAVAサイドコードです。(Android の連絡先データベースを取得)

//For Map, HashMap, List 
Map map;
List list = new ArrayList();
.
.
//add values into Hashmap
map = new HashMap();
map.put("name", name);
map.put("email", email);
.
.
// Gather Contact data and add a list
list.add(map);
.
// return List+Hashmap data
return list;

C++側でList + Hashmapタイプのデータを取得またはフェッチする方法について、このシナリオを提案または例を挙げていただけますか?

JNIの「GetObjectArrayElement」関数でこの問題は解決すると思います。しかし、GetObjectArrayElement は 1 次元配列をフェッチするだけです。

4

1 に答える 1

0

クラス "ArrayList" のオブジェクト "list" を JNI に渡します。次に、「get」などの ArrayList のメソッドを使用します。これは、クラス「HashMap」のオブジェクトを返します。ここでは配列操作はありません (Java または JNI で「toArray」を使用する場合を除く)

于 2013-11-05T15:34:55.490 に答える