I both loved and hated J2ME. It kinda had what you needed though, apart from the often "openly" idiotic device implementations that were kind of the norm. Only Sony Ericsson had a great one (fast, high code quality, sane security policies/prompts). Nokia came at second place with medium performance, high code quality and outright user-hostile security policies/prompts.