小编dnk*_*tso的帖子

Android蓝牙IOException:连接被拒绝

好吧,这是交易.我买了两部兼容蓝牙的Galaxy Nexus手机.

我编写了一个蓝牙连接管理应用程序,用于设备发现和连接.它还输出设备可以支持的所有可用UUID.

http://www.bluetooth.org/Technical/AssignedNumbers/service_discovery.htm看,以下标准UUID是从Galaxy Nexus设备公开的.

  • 0x1116 - NAP
  • 0x112f - PBAP(电话簿访问配置文件)
  • 0x111f - HFP(免提)
  • 0x1105 - OPP(对象推送配置文件)
  • 0x1112 - HSP(耳机配置文件)
  • 0x110c - AVRCP
  • 0x110a - A2DP

我试图通过OPP配置文件(UUID 00001105-0000-1000-8000-00805F9B34FB)连接并在设备之间推送对象(文件).我已经了解了有关如何发现,配对/绑定(线程等)和管理所有蓝牙连接的整个Android API文档.我已成功通过SPP(0x1101)配置文件成功连接并与传统板设备通信.

但是,当我尝试socket.connect()在两个galaxy nexus手机之间使用时,会出现配对对话框,然后我点击Pair两个设备上的按钮.在那之后,我马上得到一个Connection Refused IOException.请注意,配对发生后,我再也不会被问到哪个是有意义的,因为安全链接是缓存的.

如果我无法使用这些标准UUID连接到这些标准配置文件,为什么它们会暴露?如何从我的应用程序连接到任何这些配置文件并与它们进行交互?是因为我的应用程序不是以某种方式受信任的吗?有点奇怪的是,即使是ShareAndroid上的功能也根本不起作用.这在Android上完全被破坏了吗?

请不要像我们所说的那样给我提示使用"众所周知的UUID SPP one 0x1101".这不是我想要的.我对这些东西的运作方式有了很好的理解,我正在寻找一个真正的解决方案或解决问题的方法.

我见过典型的"反射"解决方案,但我不明白为什么这仍然是Android的问题?为什么人们使用反射来使这项工作?我们可以在Android上提交错误来修复此问题吗?

如果这些UUID是标准的,任何应用程序都应该能够连接并与它们进行交互.为什么这是一个问题,为什么我会得到这个例外?

提前致谢.

UPDATE

因此,由于某种原因,Android系统中的对象推送开始工作.我实际上试图通过我的应用程序连接,但它无法正常工作.然后,我去了联系人应用程序,并试图分享一个神奇地工作的联系人.然后,我回到我的应用程序,现在它的工作......哇.这很奇怪,必须有一个解释.

android bluetooth rfcomm

7
推荐指数
1
解决办法
3993
查看次数

Android BitmapDrawable setTileModeX在TextView上不起作用

我有一个TextView只能水平重复的位图.我想设置textview的背景并仅在X轴上重复它.环顾四周之后,我发现你只能通过代码而不是XML来实现.我创建了一个BitmapDrawable使用:,

BitmapDrawable bg = new BitmapDrawable(r, BitmapFactory.decodeResource(r, R.drawable.my_drawable));
bg.setTileModeX(Shader.TileMode.REPEAT);
setBackgroundDrawable(bg);
Run Code Online (Sandbox Code Playgroud)

然而,即使采用这种方式,也可以在Y轴上重复绘制.这是在Honeycomb 3.2中.

有人可以对此有所了解,也许可以提供一个有效的例子吗?

android background android-layout android-xml

6
推荐指数
1
解决办法
675
查看次数

在 Instrumentation 上下文中创建文件夹

我正在为我的应用程序编写仪器测试,并希望创建一个临时文件夹来存储一些文件。但是,我不想在 targetContext 中执行此操作,而是在测试上下文中执行此操作。

换句话说:

// Works, but this creates the folder in the target app.
File dir = getInstrumentation().**getTargetContext()**.getDir("directory", MODE_WORLD_READABLE);  

// Does not work, the exists() returns false.
File dir = getInstrumentation().**getContext()**.getDir("directory", MODE_WORLD_READABLE);
Run Code Online (Sandbox Code Playgroud)

我尝试了很多其他的东西,似乎实现Instrumentation context忽略了这些调用?

想法?

instrumentation android android-testing

6
推荐指数
0
解决办法
303
查看次数

ORMLite自定义数据包含多个列

假设我有一个被调用的类Person,它通常使用ORMLite持久存储到db表中.

现在,我在Person该类中有一个成员调用House.的House类包含3个属性,并且永远不会存储到数据库中.

我想要的是每当Person持久化时我想HousePerson表中的3个字段存储到3个不同的列中.

因此Person表将具有:{ person_name, person_contact, house_address, house_type, house_date }.

最后3个字段将来自Houseobject.

我想我应该DataPersisterHouse成员变量上使用a ,但这是否意味着它会将整个House对象写入一列?我想把它分成Person表格内的3列.有人可以帮忙吗?

谢谢!

orm android ormlite

5
推荐指数
2
解决办法
2610
查看次数

Android动态加载资源

我正在尝试使用DexClassLoader在我的应用程序中下载 JAR/APK。我想模块化我的应用程序,这样我就可以下载用户可能按需使用的 UI 流,而不是将它们全部一起发送到我的主应用程序中。

加载实际的类工作正常,我设法加载一些 UI 组件,我可以将它们添加到我的主机活动中。

我的问题是,显然我无法访问或添加资源(字符串、绘图、布局)到我下载的包中,因为它们不随我的主机 APK 一起提供。是否可以为我的可下载 JAR/APK 动态加载资源?

android dex android-resources

5
推荐指数
1
解决办法
2172
查看次数

OrmLite 应该在主线程中进行数据库操作吗?

这里的 Android 文档中它提到,当您调用时,getWritableDatabase()或者getReadableDatabase()您应该始终在后台线程上执行此操作。

我将 OrmLite 用于我的应用程序,当我调用它时,我getHelper()从 UI/主线程调用它。

我也StrictMode为我的应用程序启用了,我不记得在 logcat 中看到警告。

使用它的首选方法是什么?诸如insertupdate在我的Dao对象中的任何 SQL 操作呢?它们应该发生在后台线程中吗?

orm android ormlite

5
推荐指数
0
解决办法
1366
查看次数

ExecutorService仅运行最近添加的Callable

我有一个单线程执行器服务,用于通过网络获取一些数据.

当用户在搜索框中键入时,我正在排队可能的网络任务.我想要的是取消所有以前的请求,只排队并立即运行最新的请求.

我目前的方法是覆盖execute()和submit()方法并在调用super之前清除队列.

有什么想法吗?

java multithreading executorservice executor executors

3
推荐指数
1
解决办法
152
查看次数