VPN Android アプリで Always-On VPN (Android 4.2 で導入) 機能を複製することを検討しています。もちろん、ユーザーを設定ページに誘導してチェックボックスをクリックさせることもできますが、これをアプリケーションに焼き付けたいだけです。このダイアログの Android ソース コードを確認しました (SDK で対応する設定が公開されていないため)。
public void onClick(DialogInterface dialog, int which) {
final int newIndex = listView.getCheckedItemPosition();
if (mCurrentIndex == newIndex) return;
if (newIndex == 0) {
keyStore.delete(Credentials.LOCKDOWN_VPN);
} else {
final VpnProfile profile = mProfiles.get(newIndex - 1);
if (!profile.isValidLockdownProfile()) {
Toast.makeText(context, R.string.vpn_lockdown_config_error,
Toast.LENGTH_LONG).show();
return;
}
keyStore.put(Credentials.LOCKDOWN_VPN, profile.key.getBytes());
}
// kick profiles since we changed them
ConnectivityManager.from(getActivity()).updateLockdownVpn();
}
残念ながら、ここのキーストアは、通常の java.security.KeyStore ではなく、android.security.KeyStore ファイルです。そのため、私の質問は、このコード ブロックをアプリに実装する最良の方法は何ですか? root アクセスなしでアプリでこの設定を変更することは可能ですか? android.security.KeyStore ファイルを含める方法はありますか? どんな考えでも非常に役に立ちます!!