android api code学习--第一个比较完整的应用
16lz
2022-01-07
最近学习android写了一个算的上是应用的app,功能很简单,利用google 提供的translate服务将输入的字符翻译成想要的语言(比如英汉翻译)和http://translate.google.cn/差不多(这里我直接应用了google-api-translate-java-0.92.jar这个jar包,操作很简单,方便,嘿嘿),还有利用android的TextToSpeech进行speech翻译的结果,由于android的TextToSpeech只支持English,French,German,Italian,Spanish,所以只有翻译的目标语言是上面的语种时才进行speech;还有功能就是将翻译的结果能以email/msg的形式发送消息给别人。写这个程序的重点在于学习利用AIDL进行process间的信息传递(关于aidl的知识google下可以找到很多,呵呵)
定义activity访问translate service的代码段:
private ServiceConnection mTranslateConn = new ServiceConnection() { public void onServiceConnected(ComponentName name, IBinder service) { mTranslateService = ITranslate.Stub.asInterface(service); if (mTranslateService != null) { mTranslateButton.setEnabled(true); } else { mTranslateButton.setEnabled(false); mStatusView.setText(getString(R.string.error)); log("Unable to acquire TranslateService"); } } public void onServiceDisconnected(ComponentName name) { mTranslateButton.setEnabled(false); mTranslateService = null; } };
google translate service的应用:
GoogleAPI.setHttpReferrer("http://code.google.com/p/google-api-translate-java/");String translatedText = Translate.execute(text, Language.fromString(from), Language.fromString(to));
TextToSpeech的应用:
@Overridepublic void onInit(int status) {// TODO Auto-generated method stubif (status == TextToSpeech.SUCCESS) {Language to = (Language) mToButton.getTag(); String toShortName = to.getShortName(); int result = tts.setLanguage(new Locale(toShortName)); if (result == TextToSpeech.LANG_MISSING_DATA || result == TextToSpeech.LANG_NOT_SUPPORTED) { Log.e(TAG, "Language is not available."); } else {// sayText(); } } else { // Initialization failed. Log.e(TAG, "Could not initialize TextToSpeech."); }}private void sayText() {String sayInfo = mToEditText.getText().toString();Language to = (Language) mToButton.getTag();String toShortName = to.getShortName();tts.setLanguage(new Locale(toShortName));tts.speak(sayInfo, TextToSpeech.QUEUE_FLUSH,null);}
最后send msg的应用:
private void sendEmail() {Intent intent = new Intent(Intent.ACTION_SEND);intent.setType("text/plain");intent.putExtra(Intent.EXTRA_TEXT, mToEditText.getText());startActivity(Intent.createChooser(intent, null));}
恩,很简单吧,呵呵,不过还是很有成就感的说,嘿嘿。
贴些图片吧,呵呵:
更多相关文章
- android中异步任务AsyncTask的应用和工作原理
- Android(安卓)Application
- Android和iOS在新版本中助力HTML5
- Android系统的架构
- Android(安卓)GPS定位的简单应用
- Android(安卓)应用程序之间数据共享—ContentProvider
- Visual Studio跨平台开发实战(5) - Xamarin Android多页面应用程
- Android核心分析(21)----Android应用框架之AndroidApplication
- Android中的Intent[转]