2013-06-28 2 views
1

Я работаю над Android-приложением с минимальным API версии 10 и целевым 17. Я хочу использовать KeyChain, но он не поддерживается до ICS.Используйте брелок перед уровнем api 14

Может кто-нибудь предложить что-то подобное или решение этой проблемы?

Спасибо большое

+1

Вы можете использовать только доступ к keychain на новых устройствах, если это не критично для функции вашего приложения –

ответ

1

Вы можете использовать SpongyCastle, чтобы создать свой собственный KeyStore.

public class MainActivity extends Activity { 

    @Override 
    protected void onCreate(Bundle savedInstanceState) { 
     super.onCreate(savedInstanceState); 
     setContentView(R.layout.activity_main); 

     KeyStore ks = null; 
     try { 
      ks = KeyStore.getInstance(KeyStore.getDefaultType()); 
      ks.load(null,null); 

      // Add certs or keys 

      ks.store(new FileOutputStream(new File(getFilesDir(),"out.bks")),"password".toCharArray()); 
     } catch (KeyStoreException e) { 
      e.printStackTrace(); 
     } catch (CertificateException e) { 
      e.printStackTrace(); 
     } catch (NoSuchAlgorithmException e) { 
      e.printStackTrace(); 
     } catch (IOException e) { 
      e.printStackTrace(); 
     } 
    } 

    static { 
     Security.insertProviderAt(new org.spongycastle.jce.provider.BouncyCastleProvider(), 1); 
    } 
}