在问这个问题之前,我检查了所有与此问题有关的stackoverflow其他线程没有任何成功,所以请不要回答与其他线程的链接,:) 我想保存/logging谷歌识别服务用于语音文本操作的audio(使用RecognizerIntent或SpeechRecognizer)。 我经历了很多想法: onBufferReceived来自RecognitionListener:我知道,这是行不通的,只是testing它看看会发生什么,onBufferReceived永远不会被调用(用JB 4.3testing星系连接) 使用媒体logging器:不工作。 这是破坏语音识别。 话筒只允许一个操作 试图find识别服务在保存临时audio文件之前执行语音到文本api复制它,但没有成功 我几乎绝望,但我只是注意到,谷歌保持应用程序正在做我所需要做的! 我放了一些使用logcat的保持应用程序,应用程序也调用“RecognizerIntent.ACTION_RECOGNIZE_SPEECH”(如我们,开发人员)来触发语音文本。 但是,如何保持audio? 它可以是一个隐藏的API? 是谷歌“作弊”:)? 感谢您的帮助 最好的祝福
我想把一个Listener放在一个checkbox上。 我查找的信息是这样的: satView = (CheckBox)findViewById(R.id.sateliteCheckBox); satView.setOnCheckedChangeListener(new OnCheckedChangeListener() { @Override public void onCheckedChanged(RadioGroup group, int checkedId) { if (isChecked){ // perform logic } } }); 问题是Eclipse认为它是一个RadioGroup的OnCheckedChangeListener ,它不起作用。 我该如何解决这个问题?
我目前有一个服务,运行良好,当我启动它,但是当我试图阻止它使用stopService方法的onDestroy方法不会被调用。 这里是我用来停止服务的代码 stop_Scan_Button =(Button)findViewById(R.id.stopScanButton); stop_Scan_Button.setOnClickListener(new View.OnClickListener(){ public void onClick(View v){ Log.d("DEBUGSERVICE", "Stop Button pressed"); Intent service = new Intent(CiceroEngine. CICERO_SERVICE); releaseBind(); Log.d("Stop_Scan_Button", "Service: " + service.toString()); stopService(service); Log.d("Stop_Scan_Button", "Service should stop! "); } }); 我正确地认为,当使用stopService时,它调用服务的onDestroy方法? 当我按停止扫描button时,我的服务中的onDestroy()方法不会被调用。 还有什么我错过了,我应该停止服务? 编辑:添加onServiceConnected()得到调用时stopService运行,而不是onServiceDisconnected() ,为什么会发生这种情况? 编辑: 添加更多信息关于绑定 我在onCreate()方法中调用bindService,然后使用releaseBind()方法解除绑定服务。 这是该方法的代码: public void releaseBind(){ unbindService(this); } 所以我认为解绑不是我的问题?
我正在为Android编写一个简单的文本/电子书阅读器,所以我使用了TextView来向用户显示HTML格式的文本,所以他们可以通过来回浏览页面中的文本。 但我的问题是,我不能在Android中分页。 我不能(或者我不知道如何)从断行和分页algorithm中得到适当的反馈,在这些algorithm中, TextView用来将文本分解成行和页面。 因此,我无法理解内容在实际显示中的结束位置,以便我从下一页的剩余内容继续。 我想find办法来克服这个问题。 如果我知道屏幕上画的最后一个字是什么,我可以很容易地把足够的字符填满一个屏幕,并且知道实际的绘画完成的地方,我可以继续下一页。 这可能吗? 怎么样? 类似的问题已经在StackOverflow上多次提出,但没有提供令人满意的答案。 这些只是其中的几个: 如何在Android中将长文本分页成页面? 在Android的电子书阅读器分页问题 根据呈现的文本大小分页文本 有一个答案,似乎工作,但速度缓慢。 它添加字符和行,直到页面被填充。 我不认为这是一个很好的方法来做页面打破: 如何在Android中将样式文本分解成页面? 而不是这个问题,恰巧PageTurner电子书阅读器做它大部分是正确的,虽然它在某种程度上是缓慢的。 https://github.com/nightwhistler/pageturner PS:我不仅限于TextView,而且我知道换行和分页algorithm可能相当复杂( 如在TeX中 ),所以我不是在寻找最佳答案,而是一个相当快速的解决scheme,可以被用户。 更新:这似乎是得到正确答案的好开始: 有没有办法检索TextView的可见行数或范围? 答案:完成文字布局后,可以找出可见的文字: ViewTreeObserver vto = txtViewEx.getViewTreeObserver(); vto.addOnGlobalLayoutListener(new OnGlobalLayoutListener() { @Override public void onGlobalLayout() { ViewTreeObserver obs = txtViewEx.getViewTreeObserver(); obs.removeOnGlobalLayoutListener(this); height = txtViewEx.getHeight(); scrollY = txtViewEx.getScrollY(); Layout layout = txtViewEx.getLayout(); firstVisibleLineNumber = […]
我收到错误消息 java.net.SocketException:套接字失败:EACCES(权限被拒绝) 当我尝试应用下面的代码。 这是我打电话给我的例外。 public void run() { // TODO Auto-generated method stub URL myurl = null; try { myurl = new URL("http://10.0.2.2/list.JSON"); } catch (MalformedURLException e) { // TODO Auto-generated catch block e.printStackTrace(); } try { URLConnection myconn = myurl.openConnection(); InputStream in = new BufferedInputStream(myconn.getInputStream()); InputStreamReader reader = new InputStreamReader(in); BufferedReader br = new […]
如何在Android中启动一个活动(即活动正在加载一些数据)之前显示进度对话框?
我做了custom notification并有一个button,我想执行两个不同的functionalities on notification and button click 。 我看了很多链接,但无法find添加button侦听器的方式。 任何人都可以帮忙 这是我的代码。 非常感谢。 private void startNotification() { Intent intent; PendingIntent pIntent; RemoteViews remoteViews = new RemoteViews(getPackageName(), R.layout.mynotification); Context context = getApplicationContext(); NotificationCompat.Builder builder = new NotificationCompat.Builder( this).setSmallIcon(R.drawable.ic_launcher).setContent( remoteViews); if (hasFlash) { intent = new Intent(context, FlashLight.class); pIntent = PendingIntent.getActivity(context, 1, intent, 0); } else { intent […]
以下是我的testing代码创build列表视图,列表视图显示成功,但是,在点击事件中有错误。 我想创build一个意图发送硬编码信息到一个新的活动。 但是,它显示错误的行 Intent intent = new Intent(context, SendMessage.class); 所以,问题是,我应该为这个class级提供什么? 此外,而不是硬编码的输出消息,如何捕获列表视图行中的数据,并传递给新的活动? 例如第一行的BBB,AAA,R.drawable.tab1_hdpi 。 谢谢。 public class MainActivity extends Activity { public final static String EXTRA_MESSAGE = "com.example.ListViewTest.MESSAGE"; @Override protected void onCreate(Bundle savedInstanceState) { super.onCreate(savedInstanceState); setContentView(R.layout.activity_main); ArrayList<ListEntry> members = new ArrayList<ListEntry>(); members.add(new ListEntry("BBB","AAA",R.drawable.tab1_hdpi)); members.add(new ListEntry("ccc","ddd",R.drawable.tab2_hdpi)); members.add(new ListEntry("assa","cxv",R.drawable.tab3_hdpi)); members.add(new ListEntry("BcxsadvBB","AcxdxvAA")); members.add(new ListEntry("BcxvadsBB","AcxzvAA")); members.add(new ListEntry("BcxvBB","AcxvAA")); members.add(new ListEntry("BvBB","AcxsvAA")); members.add(new […]
今天我更新了我的ADT和SDK Tools到v17,我的项目使用Google的gson jar库开始抛出NoClassDefFoundError。 这是logcat输出: > 03-22 12:30:58.941: E/AndroidRuntime(21672): FATAL EXCEPTION: main > 03-22 12:30:58.941: E/AndroidRuntime(21672): > java.lang.NoClassDefFoundError: com.google.gson.Gson 03-22 > 12:30:58.941: E/AndroidRuntime(21672): at > com.matriksdata.conn.XRequestHandler.connect(XRequestHandler.java:35) > 03-22 12:30:58.941: E/AndroidRuntime(21672): at > com.matriksdata.conn.XRequestHandler.makeRequest(XRequestHandler.java: > 29) 03-22 12:30:58.941: E/AndroidRuntime(21672): at > com.matriksdata.bavul.XBaseWithConnectionActivity.makeRequest(XBaseWithConnectionActivity.java: > 46) 03-22 12:30:58.941: E/AndroidRuntime(21672): at > com.matriksdata.ui.login.SplashScreenActivity.onCreate(SplashScreenActivity.java: > 36) 03-22 12:30:58.941: E/AndroidRuntime(21672): at > […]
我有一个应用程序应该使用一些shell命令将文件从SD卡复制到/ system / media /。 这将需要根,我正在根植设备上进行testing。 我正在使用运行时执行shell命令,但它不起作用。 这是我的运行时间 public void RunAsRoot{String[] commands = {"sysrw", "rm /data/local/bootanimation.zip", "sysro"};{ Process p = Runtime.getRuntime().exec("su"); DataOutputStream os = new DataOutputStream(p.getOutputStream()); for (String tmpCmd : commands) { os.writeBytes(tmpCmd+"\n"); } os.writeBytes("exit\n"); os.flush(); } 但我的logcat只显示其中两个没有被拒绝 07-30 03:14:11.112: WARN/su(3593): request rejected (10047->0 /system/bin/sh) 07-30 03:14:11.132: DEBUG/su(3592): 10047 com.bba.stormdroid executing 0 /system/bin/sh using shell […]