このページには、Androidがすべてのユーザー証明書を選択してスピナーに表示する方法が説明されています... http://source-android.frandroid.com/packages/apps/Settings/src/com/android/settings/ vpn2 / VpnDialog.java
彼らは方法を使用します:
private void loadCertificates(Spinner spinner, String prefix, int firstId, String selected) {
Context context = getContext();
String first = (firstId == 0) ? "" : context.getString(firstId);
String[] certificates = mKeyStore.saw(prefix);
if (certificates == null || certificates.length == 0) {
certificates = new String[] {first};
} else {
String[] array = new String[certificates.length + 1];
array[0] = first;
System.arraycopy(certificates, 0, array, 1, certificates.length);
certificates = array;
}
ArrayAdapter<String> adapter = new ArrayAdapter<String>(
context, android.R.layout.simple_spinner_item, certificates);
adapter.setDropDownViewResource(android.R.layout.simple_spinner_dropdown_item);
spinner.setAdapter(adapter);
for (int i = 1; i < certificates.length; ++i) {
if (certificates[i].equals(selected)) {
spinner.setSelection(i);
break;
}
}
}
この呼び出しで:
loadCertificates(mIpsecUserCert, Credentials.USER_CERTIFICATE,
0, mProfile.ipsecUserCert);
現在、メソッドmKeyStore.saw(String prefix)にCredetials.USER_CERTIFICATEを使用しています。
それはまさに私が探しているものですが、私はメソッドsawを呼び出すことができず、AndroidAPIにも記載されていません...
それで、どういうわけか私のために同じ結果を得る方法はありますか?
キーストアライブラリは、ユーザー証明書またはシステム証明書を区別できません。すべての証明書をドロップダウンリストに入れたい場合は、読み込みに多くの時間がかかります。証明書のサブジェクト名を入力し、すべての証明書を正しい名前になるまでループする別の方法は、IT以外の人にとっては実際には実用的ではないため、通常のユーザーにとっては扱いにくいです...
ネットにはこのトピックに関する参照はほとんどありません。そのため、この投稿でのみgoogleandroidproに質問しています。
ありがとうございました