Articles of android

在Android上构建Xamarin.Forms应用程序时识别许多XA0106警告的罪魁祸首

我们有一个Xamarin.Forms应用程序,它使用了很多包。 在构建时,我们收到了数百个XA0106警告,如下所示: /Library/Frameworks/Mono.framework/External/xbuild/Xamarin/Android/Xamarin.Android.Common.targets(2,2):警告XA0106:跳过Musterd.Droid.Resource.Attribute.MediaRouteControllerWindowBackground。 请检查您的Nuget包版本是否兼容。 (XA0106)(Musterd.Droid) 我知道这是因为包使用的支持库之间的不匹配。 问题是找出哪一个! 有没有我可以使用的工具或构建设置,这将帮助我回家哪个包导致这个,所以我可以/应该更新?

显示项目名称时的问题以及存储在sqlite for android中的图像

我将项目及其详细信息存储在sqlite中,并显示项目的图像以及我正在使用的项目名称 private void getDataAndPopulate() { Cursor cursor = getEvents(“bcuk_book”); while (cursor.moveToNext()) { String temp_id = cursor.getString(0); final String temp_name = cursor.getString(1); String temp_author=cursor.getString(2); String temp_desc=cursor.getString(3); byte[] temp_image = cursor.getBlob(4); String temp_rating = cursor.getString(5); String temp_price = cursor.getString(6); String temp_update=cursor.getString(7); mapId.add(temp_id); mapName.add(temp_name); mapAuthor.add(temp_author); mapDesc.add(temp_desc); mapRating.add(temp_rating); mapPrice.add(temp_price); map.add(temp_image); mapUpdated.add(temp_update); Log.e(“temp_id from the sqlite”, temp_id); Log.i(temp_name, temp_name); Log.i(temp_desc, […]

可扩展的listview setselectionfromTop,带有animation和填充

我使用这个https://github.com/idunnololz/AnimatedExpandableListView/blob/master/src/com/idunnololz/widgets/AnimatedExpandableListView.java启用animation(扩展和收缩)到默认的android‘d可扩展列表视图。 但是,我面临的一个限制是将当前展开的点击移动到顶部。 我试过setSelectionFromTop(groupPosition, 0) 这是一个问题: – 如何添加animation以使其位于顶部? – 如何将它带到特定高度的顶部。 让我们说从顶部低于10px。 任何指针都会很棒。 注意:解决方案应该适用于sdk 14及更高版本。

使用HttpClient在Android中重用SSL会话

我在使用HttpClient在Android上恢复SSL会话时遇到了很多困难。 我每隔90秒轮询一次服务器(仅适用于只有一个function的工业设备),所以我需要恢复会话,否则数据使用从每小时几KB到最高150-200kB,这是不可持续的。 服务器是在Restlet中嵌入Jetty,并且当我使用OpenSSL测试它时支持恢复SSL会话。据我所知。 我正在重用我的HttpClient对象,所以不是那样的。 Android有一个特定的SSLCertificateSocketFactory,我也尝试了它,它似乎也没有用。 有什么我在这里完全不见了? 我假设HttpClient会自动执行此操作,我不确定我做错了什么,互联网上似乎没有人遇到类似的问题。 我通过以下方式设置了httpClient: public HttpClient getNewHttpClient(Context context) { try { HttpParams params = new BasicHttpParams(); HttpProtocolParams.setVersion(params, HttpVersion.HTTP_1_1); HttpProtocolParams.setContentCharset(params, HTTP.UTF_8); HttpConnectionParams.setStaleCheckingEnabled(params, false); HttpConnectionParams.setConnectionTimeout(params, 4 * 1000); HttpConnectionParams.setSoTimeout(params, 5 * 1000); HttpConnectionParams.setSocketBufferSize(params, 8192); HttpClientParams.setRedirecting(params, false); SSLSessionCache sslSession = new SSLSessionCache(context); SchemeRegistry registry = new SchemeRegistry(); registry.register(new Scheme(“http”, PlainSocketFactory.getSocketFactory(), 80)); registry.register(new Scheme(“https”, SSLCertificateSocketFactory.getHttpSocketFactory(10*60*1000, […]

对话框大小与背景图像不匹配

我正在使用Android SDK制作游戏。 一路上,我需要显示popup/对话框,就像用户可以升级的任何其他游戏一样。 我遇到的问题是对话框的大小。 我正在使用RelativeLayout,我正在使用“wrap_content”设置背景图像。 对话框占用内部视图大小(或Android设置的默认对话框最小大小,以较大者为准)的问题不是背景图像。 如果我使用fill_parent,那么它会拉伸它。 我花了几个小时和几个小时旋转我,我似乎无法find一个有效的方式,窗口的大小与背景图像的大小相匹配 有什么建议么? 这是一个非常常见的用例,必须有办法! 谢谢 这是一些布局内容

将Android Nexus One与Arduino + BlueSmirf连接

我对这一切都有点新意,所以请耐心等待 – 我真的很感谢你的帮助。 我正在尝试将Android Nexus One与连接到BlueSmirf的arduino(Duemilanove)相关联。 我有一个程序只是将字符串“Hello Bluetooth”输出到BlueSmirf所连接的任何设备。 这是Arduino计划: void setup(){Serial.begin(115200); int i; } void loop(){Serial.print(“Hello Bluetooth!”); 延迟(1000); } 一台我的电脑BT终端我可以看到消息并连接没问题。 麻烦在于我的android代码。 我可以用android连接到设备,但是当我查看日志时它没有显示“Hello Bluetooth”。 这是调试日志: 04-09 16:27:49.022:ERROR / BTArduino(17288):连接FireFly-2583 04-09 16:27:49.022:ERROR / BTArduino(17288):开始连接sockets 04-09 16:27:55.705:ERROR / BTArduino(17288):收到:16 04-09 16:27:56.702:ERROR / BTArduino(17288):收到:1 04-09 16:27:56.712:ERROR / BTArduino(17288):收到:15 04-09 16:27:57.702:ERROR / BTArduino(17288):收到:1 04-09 16:27:57.702:ERROR / BTArduino(17288):收到:15 04-09 16:27:58.704:ERROR / […]

从笔记本电脑控制您的手机

想法 :为你的Android手机创建一个遥控器。 原因 :我喜欢在连接扬声器的基座站的手机上听音乐。 现在有时我想要上调/下调音量,更改歌曲等等。所以我需要解锁手机,find正在播放音乐的应用程序(音乐播放器,网络电台应用程序等)。 有时我会设法取消电话,或者只是弄乱一些东西,通常是这个问题。 所以我想从笔记本电脑(在wifi上)控制我的手机(在数据连接上,而不是wifi上)。 我调查了几种方法,并希望得到一些建议: 使用XMPP 。 这很好,因为我可以使用很多免费的XMPP服务。 我试过的两个库(都基于smack)工作得很好(Flow aSmack port和Beem smack port )。 我可以在设备上自动创建新用户并呈现我(用户)将在桌面端输入以链接两个设备的一些ID /密码组合。 使用JXTA 。 应该是下一个真正的交易,但可能是一个矫枉过正。 我想在某处运行一个集合和中继服务器(需要托管以解决防火墙/ NAT)并创建一个受密码保护的对等组。 使用设备唯一ID和密码(带组)链接到桌面应用程序。 (可以从这里下载一本很好的电子书来解释p2p和JXTA)。 使用C2DM 。 可能是答案,但通知交付有时可能需要几秒钟才能完成,而且没有反馈机制。 到目前为止,第一个解决方案看起来更容易选择。 创建自定义扩展或仅在两个端点之间创建聊天,并使用它来中继命令/消息。 但我想知道我是否会滥用XMPP系统? JXTA听起来很棒,但从我所做的所有阅读中可以看出,它是专为群组通信和服务共享而设计的,而不是连接两个端点的解决方案。 你们有什么感想? 我也欢迎所有的建议。 更新我不想远程接听电话并以交互方式控制它。 我想在笔记本电脑和手机之间建立连接(套接字连接),即使它们都位于防火墙,路由器后面的不同网络上。 有了这个,我可以定义一个协议来向手机发出命令(低音量,静音,启动应用程序等)。 更新2我给JXTA一个机会。 这是一个很好的解决方案,但缺乏文档是一个下降。 得到了VPS FreeBSD服务器来测试RDV / relay方面的东西。 我不断更新这个问题,因为它可能对其他人有帮助。 更新3更多阅读: 如何使两个Android设备通过TCP进行通信 两台计算机之间的连接没有使用第三台计算机打开端口 更新4到目前为止,我没有足够的时间继续我的项目。 我find了一个有趣的项目 。 目前项目所有者正在重新编写他们的图书馆,您可以在此处跟踪他们的进度。

如何使用adjustPan保持工具栏可见?

我有一个类似下面的布局,当用户点击EditText时,我想有以下行为: 键盘应覆盖“LinearLayout与底部对齐”; EditText应该在屏幕上可见,而不是由键盘覆盖; 工具栏应在屏幕上可见; 我的布局 预期的行为 windowSoftInputMode = adjustPan的实际结果 要求未达到: 工具栏应在屏幕上可见; windowSoftInputMode = adjustResize的实际结果 要求未达到: 键盘应覆盖“LinearLayout与底部对齐”; windowSoftInputMode = adjustNothing的实际结果 要求未达到: EditText应该在屏幕上可见,而不是由键盘覆盖; 有没有人遇到同样的问题并达到了要求?

Crosswalk WebView中启用了Chrome的数据保护function?

在Chrome版本45.0.2454.85中,每当我连接到手机上的Cordova / Crosswalk应用程序时,开发人员工具会在窗口顶部显示黄色警告,文字显示:“在调试时考虑禁用Chrome数据保护程序 ”。 是否在Crosswalk插件(版本1.2,WebView版本44.0.2403.117)中启用了数据保护程序? 如果是这样,我可以将其关闭吗?

来自Google I / O的Android内存泄漏示例

我刚看了谷歌iovideo“android的内存管理”。 幻灯片可在http://dubroy.com/memory_management_for_android_apps.pdf上find 。 内存泄漏示例在幻灯片36上。 我不明白为什么这会在方向改变后导致泄漏。 我确实知道泄漏是一个内部类,并且引用了外部类。 另外,我确实理解静态variables“leak”引用了“Leaky”对象……就是整个活动。 我认为这是特殊的,因为static关键字。 静态variables有一定的内存,可能不是gc’ed(至少只要应用程序运行)?!? 那么,oriantation变化会发生什么? 将创建一个新的活动实例,并调用onCreate活动。 leak == null为false。 泄漏仍指向“旧”活动。 那是泄密。 老活动不能接受,对吧? 为什么内存使用会随着每个oriantation的变化而增加? 在我(错误的)理解中,我假设只有第一个活动不能被gc’ed。 由于oriantation更改而创建的其他活动可以是gc’ed,因为它们没有被静态variables“leak”引用。 但是……显然……我完全错了!