Articles of android sdk 2.3

来电录音/处理服务! – Android

你好, 我正在开发Android的解决scheme,将logging呼叫(包括输出和input),并进一步处理logging的数据(在我的应用程序的终点,没有audio文件数据将保存在手机内存)。 我已经实现与PhoneStateListener.LISTEN_CALL_STATE BroadcastReceiver启动logging服务,如果状态是CALL_STATE_OFFHOOK。 然后在服务中,我开始一个尝试录制呼叫的新线程,以及另一个带有PhoneStateListener.LISTEN_CALL_STATE的BroadcastReceiver,如果电话状态更改为TelephonyManager.CALL_STATE_IDLE,则调用方法停止录制。 所创build的audio文件是空的。 我的服务中的recorder.stop()方法被调用时抛出exception。 错误在哪里? 我能做得更好吗? 首先(独立)BroadcastReceiver: package com.piotr.callerrecogniser; import android.content.BroadcastReceiver; import android.content.Context; import android.content.Intent; import android.content.SharedPreferences; import android.telephony.PhoneStateListener; import android.telephony.TelephonyManager; public class CallReceiver extends BroadcastReceiver { @Override public void onReceive(Context context, Intent intent) { MyPhoneStateListener phoneListener = new MyPhoneStateListener(context); TelephonyManager telephony = (TelephonyManager) context .getSystemService(Context.TELEPHONY_SERVICE); telephony.listen(phoneListener, PhoneStateListener.LISTEN_CALL_STATE); } class MyPhoneStateListener extends […]

Android蓝牙接受()/连接()与已配对的设备

我无法通过蓝牙连接两个Android设备,只有在配对之前才会发生这种情况。 我正在运行一个作为服务器,另一个作为客户端。 这里是服务器端的一系列事情: 检查各种蓝牙状态(适配器可用,已启用等)。 使用我select的预定义的UUID调用listenUsingRfcommWithServiceRecord()。 请求使设备可发现 由于可被发现asynchronous发生,我调用accept()并等待传入​​的连接。 在客户端: 检查各种蓝牙状态(适配器可用,已启用等)。 对于getBondedDevices()中的每个设备,我将getName()与服务器名称进行比较。 如果有匹配,请跳到步骤6。 开始BT发现 对于每个发现的设备(请注意,来自2a的配对设备不会在此显示),请将设备名称与服务器名称进行比较。 如果有匹配,请转到步骤6。 取消发现 在步骤2中find的设备上,使用与服务器端使用的相同的预定义UUID调用createRfcommSocketToServiceRecord()。 调用connect()并等待它返回一个连接的套接字。 当客户端和服务器从未配对过时,上述过程对我来说工作得非常好。 但是,在Android注册到设备列表后,它们将不可避免地在connect()/ accept()阶段超时。 我一直在寻找一个解决scheme几天,并尝试了很多东西,包括这一个: 连接到已经配对的蓝牙设备 reflection方法也不适用于我。 看起来connect()会立即返回,但是当我尝试getOutputStream()时,我得到一个exception。 在accept()方面,它甚至不logging有人试图连接。 我认真地需要一些帮助或指示,让设备build立连接,一旦他们以前配对。 这里是关于设备的一些信息: 我正在testing两台LG G2X手机上的服务器和客户端。 他们两个都运行在Android 2.3.3上,对应于API级别10。 再次,上述工作后我手动解除设备设置。 提前谢谢你。 我在Android和蓝牙上大概有两个星期的时间,所以如果你看到任何缺失的步骤或最佳做法,请将它们指出来。

Android 2.3模拟器方向更改

我遇到了一些问题,我认为这与模拟器本身有关。 我已经把这段代码放在我的一个活动的onCreate方法的顶部: Log.d(Const.TAG, "onCreate orientation: " + getRequestedOrientation()); 每当我在模拟器中切换方向(通过Ctrl + F11和/或数字7),它将打印-1 (对应于SCREEN_ORIENTATION_UNSPECIFIED ),并在横向卡住(除非我重新启动应用程序,否则不会切换回肖像) 。 难道我做错了什么? 有其他人有这个问题吗? 这与2.3模拟器严格相关还是出现在设备上(Nexus S当前)?

如何build立我自己的Android SDK

我工作在我自己的Android设备上有很多新的API(但@饰)。 我的目标是提供一个android sdk来开发它并使用这些新的API。 所以我的问题是:如何使用这些新的API来构build我自己的android sdk? 如果@hide装饰是一个问题,我可以删除它们(我不必尊重CDD )

FlashLED强度控制

我正在寻找在Android相机LED闪光帮助改变它像这个程序的强度。 我检查了以下链接,但我没有得到确切的结果。 我可以更改Android设备的LED亮度吗? 如何在Android中以编程方式打开相机闪光灯? http://code.google.com/p/droidled/source/checkout http://code.google.com/p/simpleled/source/checkout https://code.google.com/p/openintents/source/checkout 而且我无法执行这个链接 (对我来说这似乎很有希望)。 任何帮助是极大的赞赏。

在Android中手动创buildUI线程以增加其较小的堆栈大小

我在主UI线程( 相关的问题 )StackOverflowErrors挣扎。 我的应用程序的目标是Android 2.3+。 在Android 4上一切都很好,但是在2.3.3的视图布局绘制时出现崩溃。 显而易见的答案是优化我的视图布局,并减less嵌套视图的数量。 这是一个问题,因为大量的意见是由于我使用支持库和片段的标签 – 这是推荐的方法。 我不想改变我的devise,并放弃片段,因为OS的旧版本有一个小的堆栈。 我正在寻找方法来增加UI线程的堆栈大小。 我已经看到了这是不可能的答案 ,我明白清单中没有简单的设置。 但是,我仍然不满意,没有手动解决方法。 我迄今为止最好的想法是: 用更大的堆栈创build一个新的工作线程(Thread类)。 可以增加工作线程的堆栈大小。 然后,将这个线程转换到新的UI线程。 怎么样? 浏览android.app.Activity .attach(..)的Android源码我已经看到一个活动将自己附加到一个UI线程。 也许有一些方法来replace它所连接的线程,并将其更改为我的“新”UI线程 进一步深入android.app.ActivityThread .startActivityNow(..),也许我将能够手动开始我的活动。 一旦活动被创build,它就自动附加到它创build的线程上。 也许如果我从我的新的UI线程运行这个,它将工作。 如果我创build一个新的UI线程,我将不得不手动创build它的Looper。 我得到了什么是需要从android.app.ActivityThread .main(..)创build的感觉 其他想法: 手动捕获StackOverflowError,并在发生asynchronous移动调用,以便他们有一个较小的堆栈。 我在这里看到了这个不错的主意,但是我无法做到这一点。 NDK线程(通过JNI)有很大的堆栈。 我想过为了我的利益而使用它们,但是我认为没有办法做到这一点。 所有通过JNI的调用都在自己的线程上执行,所以我看不到如何使用NDK线程进行UI访问。 所以.. 除了说这是一个非常糟糕的主意,其他任何build议或提示? 你能find任何类似的人吗? 我不能..

如何在Linux下使用向上/向下键启用Android adb shell历史logging?

我最近升级到新的Android SDK,我注意到一些非常非常困扰。 看来在shell中使用命令历史是不可能的。 你注意到了吗? Android的shell对我来说似乎很糟糕,但至less在最后一个SDK中,我有命令历史logging。 现在,按下上/下箭头,导致一些代码写在提示符(如^ [[A,^ [[B等…)。 我试图读一点点,但我发现很less有人问这个零答案。 任何想法为什么会发生这种情况,以及如何解决

parsingXML时出错:找不到任何元素

首先请原谅我,如果我发布这个问题错了。 我用了很多问题的stackoverflow,但这是我第一次不能find我的问题的答案。 所以,如果我做错了,请让我知道,我会重新发布/编辑问题。 现在到营业。 我刚刚开始开发W / Android SDK,我正在从基本教程从http://developer.android.com/resources/tutorials/hello-world.html#avd我已经得到了XML编辑部分,当我对xml文件main.xml和strings.xml进行所有更改时,会发生此错误。 另外,当我编译项目时,编译过程会生成一个空的main.out.xml文件。 我不知道它是什么或它的目的。 错误: [2011-12-30 16:10:02 – 你好Razor] res \ layout \ main.xml:0:error:资源项目main已经定义好了。 [2011-12-30 16:10:02 – 你好Razor] res \ layout \ main.out.xml:0:原来这里定义的。 [2011-12-30 16:10:02 – 你好Razor] C:\ Users \ Dux69 \ workspace \ Hello Razor \ res \ layout \ main.out.xml:1:error:ErrorparsingXML:找不到元素[2011 -12-30 16:10:13 – 你好Razor]在XML文件错误:中止生成。 我的项目设置为平台:Android 2.3.3 API级别:10 […]

java.security.cert.CertPathValidatorException:未find证书path的信任锚点。 Android 2.3

在我的服务器(生产服务器),我有一个goDaddy ssl证书。 我有iOS和Android应用程序连接到服务器,iOS连接没有问题,Android与版本4. *一切都很好,但设备与2.3。*我总是得到一个SSLHandshakeException。 我完全喜欢Android开发者页面( https://developer.android.com/training/articles/security-ssl.html )。 我已经在这里看到类似的线程在这里( 这里 ),但没有任何帮助。 然后我看到这个线程谈论扩展密钥的使用,但是在debugging时,我得到以下信息: [2]: OID: 2.5.29.37, Critical: false Extended Key Usage: [ "1.3.6.1.5.5.7.3.1", "1.3.6.1.5.5.7.3.2" ] 所以我猜这个证书不是“强制”扩展密钥的使用。 另外在这个线程还有一些其他可能的原因,如date/时间完全错误,这些都不存在。 考虑到这一点,我现在不知道问题出在哪里。 有什么build议么? 编辑: StackTrace下面: 08-04 16:54:30.139: W/System.err(4832): Caused by: java.security.cert.CertificateException: java.security.cert.CertPathValidatorException: Trust anchor for certification path not found. 08-04 16:54:30.149: W/System.err(4832): at org.apache.harmony.xnet.provider.jsse.TrustManagerImpl.checkServerTrusted(TrustManagerImpl.java:161) 08-04 16:54:30.149: W/System.err(4832): at org.apache.harmony.xnet.provider.jsse.OpenSSLSocketImpl.verifyCertificateChain(OpenSSLSocketImpl.java:664) 08-04 16:54:30.149: […]

Android – 把一个图像名称“包”抛出编译时错误

我试图在我的可绘制文件夹中放置一个图像名称“package.png”。 只要我把它们粘贴到文件夹中,就会出现以下错误: [2012-05-26 12:40:30 – MyApp] res/drawable-mdpi/package.png:0: error: invalid symbol: 'package' 但只要我重命名为其他的名字,这个图像工作正常。 任何想法为什么发生这种情况,我怎么能解决这个问题,并有一个名为“包”的可绘制。