天道酬勤,学无止境

技术分享

如何使用 Retrofit 解决多个 API 端点?(How to address multiple API end points using Retrofit?)

问题 在我的 Android 项目中,我将以下 Retrofit ApiModule用于一个API 端点。 请注意,我使用 Dagger 来注入依赖项。 @Module( complete = false, library = true ) public final class ApiModule { public static final String PRODUCTS_BASE_URL = "https://products.com"; @Provides @Singleton Endpoint provideEndpoint() { return Endpoints.newFixedEndpoint(PRODUCTS_BASE_URL); } @Provides @Singleton ObjectMapper provideObjectMapper() { ObjectMapper objectMapper = new ObjectMapper(); objectMapper.setPropertyNamingStrategy( PropertyNamingStrategy.CAMEL_CASE_TO_LOWER_CASE_WITH_UNDERSCORES); return objectMapper; } @Provides @Singleton RestAdapter

2021-06-13 06:51:55   android   rest   retrofit

如何使用MqttClient的解锁方法(How to use the un-blocking method of MqttClient)

问题 当我尝试使用下面的代码连接到mosquitto代理时,如您所知,连接到代理可能需要几秒钟/分钟,并且在按下按钮进行连接的那段时间里,它保持按下状态,直到建立连接以及连接建立按钮释放回到正常状态。 据我所知,使用paho java API连接客户端有两种方式, blocking method和unblocking method 。 我的问题是,如何使用unblocking method ? 下面是我尝试使用阻塞方法 代码_1 : //mqttFactory public final class MQTTClientFactory { public static MqttClient newClient(String ip, int port, String clientID) throws MqttException { String serverURI = formURI(ip, port); MqttClient client = new MqttClient(serverURI, clientID).; return client; } MqttConnectOptions opts = getClientOptions(); client = MQTTClientFactory.newClient(broker, port, clientID); if (client

2021-06-13 06:51:51   mqtt   paho

如何在特定索引号的 Laravel 中将对象(模型类型对象)插入到集合对象中?(How to insert an object (Model type object) into Collection Object in Laravel at specific index number?)

问题 我已经阅读了 Dayle Rees 的 Code Bright,以了解有关 Laravel 中使用的 Eloquent Collection的更多信息。 也做了一些其他研究,但找不到我正在寻找的答案。 我想在特定位置将对象( Model类型对象)插入到Collection对象中。 例如: 这是返回的集合 Illuminate\Database\Eloquent\Collection Object ( [0] => Attendance Object ([present_day] => 1) [1] => Attendance Object ([present_day] => 2) [2] => Attendance Object ([present_day] => 4) [3] => Attendance Object ([present_day] => 5) ) 正如您在上面看到的, [present_day]的值范围为1 to 5 ,但序列中缺少值3 。 现在,我真正想要做的是,我想明确地将一个新的Attendance Object放在[2]索引号/位置的集合对象的位置,从而推动考勤对象的其余部分。 我真的很难做到这一点。 我如何才能使上面的集合对象看起来像下面这样: Illuminate\Database\Eloquent\Collection Object ( [0]

2021-06-13 06:51:47   php   laravel   collections   laravel-4   eloquent

t-sql recursive query(t-sql recursive query)

问题 基于现有表,我使用 CTE 递归查询得出以下数据。 但未能进一步应用它。 数据如下 id name parentid -------------------------- 1 project 0 2 structure 1 3 path_1 2 4 path_2 2 5 path_3 2 6 path_4 3 7 path_5 4 8 path_6 5 我想从上述数据递归地形成完整路径。 意味着递归将给出以下输出。 FullPaths ------------- Project Project\Structure Project\Structure\Path_1 Project\Structure\Path_2 Project\Structure\Path_3 Project\Structure\Path_1\path_4 Project\Structure\Path_2\path_5 Project\Structure\Path_3\path_6 谢谢 回答1 这是一个示例 CTE 来做到这一点: declare @t table (id int, name varchar(max), parentid int) insert into @t select 1, 'project' , 0 union all select 2, 'structure' , 1 union

2021-06-13 06:51:44   sql   sql-server   sql-server-2005   tsql

我们的 TFS 2013 安装中的“编辑构建定义”权限在哪里?(Where is the “Edit build definition” permission in our TFS 2013 installation?)

问题 Our environment is a TFS 2013 server (12.0.21005.1 Tfs2013.RTM) which was upgraded from a fresh installation of TFS 2008, with a number of team projects and developers. One thing that our developers regularly need to do is create and edit build definitions. According to both Visual Studio and all documentation I've been able to find, there should be a "Edit build definition" privilege (perhaps along with a few others) which controls access to this. But as you can see in the screenshot, it doesn't exist in our installation: The only workaround I've found is to grant the people in question

2021-06-13 06:51:40   tfs

调用 BroadcastReceiver 时是否需要获取唤醒锁(Do I need to acquire wake lock when invoking a BroadcastReceiver)

问题 In the book Pro Android 4 By Satya Komatineni , Dave MacLean I've found: Android acquires a partial wake lock when invoking a broadcast service and releases it when it returns from the service in the main thread Does it mean that the Android OS ensures that the device will wake up for the time of going through onReceive of BroadcastReceiver? In my case the BroadcastReceiver should get an intent from Google Play Services (GoogleLocationServices and to be precise Geofences api). Where is it documented? EDIT: I've also found it here: because it is guaranteed that the BroadcastReceiver

2021-06-13 06:51:37   android   broadcastreceiver   android-broadcast   android-wake-lock   android-geofence

为什么 Mathematica 会破坏 Module 中的正常范围规则?(Why would Mathematica break normal scoping rules in Module?)

问题 正如在最近的一篇帖子中指出的那样,在模块内部无法按预期工作。 该线程的一个示例是: Module[{expr}, expr = 2 z; f[z_] = expr; f[7]] (*2 z*) 但以下几乎按预期工作。 Module[{expr}, expr = 2 z; Set@@{f[z_], expr}; f[7]] (*14*) 是什么语言设计考虑让 wolfram 选择了这个功能? 编辑:请参阅 Jefromi 的第一条评论,我将 z 从局部变量更改为非局部变量,但忘记更改输出。 它不会影响问题。 Edit2:Michael Pilat 的观点似乎是 Block 和 Module 具有不同的功能。 我想我理解他的观点,但我认为这与我的问题是正交的。 所以这里有一个更新。 我可以在笔记本中的全局级别使用以下代码: expr = 2 z; f[z_] = expr; f[7] (*output: 14*) 但是当我将相同的代码块放入 Module 并使 expr local 时,它会产生不同的输出。 Clear[f]; Module[{expr}, expr = 2 z; f[z_] = expr; f[7]] (*output: 2z*) 如果跟踪上述模块调用,您会发现 Set[f[z_], expr] 被重写为 Set[f[z$_,expr]。 现在这个 z->z$

2021-06-13 06:51:33   programming-languages   wolfram-mathematica

Git 命令输出显示特殊字符(Git command output shows special characters)

问题 在过去的几天里,我们在执行 Git 命令时看到了一种奇怪的行为。 命令执行: git show 08fcf54adc7bbb75a54b14625fdeea7608d44a23 > sample.patch 通过vi 编辑器打开文件 sample.patch 时,我们看到很多特殊字符; 示例输出文件如下所示: ^[[33mcommit 08fcf54adc7bbb75a54b14625fdeea7608d44a23^[[m Author: Anshul Gupta <anshul.gupta@lnttechservices.com> Date: Wed Nov 26 23:27:20 2014 +0400 Remove redundant logs from EPD driver Change-Id: I078584ddd7a58da1052a8d46fd59af722e11136b ^[[1mdiff --git a/drivers/video/s1d13522/s1d13522fb.c b/drivers/video/s1d13522/s1d13522fb.c^[[m ^[[1mindex ca568ad..5e67de6 100644^[[m ^[[1m--- a/drivers/video/s1d13522/s1d13522fb.c^[[m ^[[1m+++ b

2021-06-13 06:51:29   git   special-characters   vi

iccp:无法识别已编辑的已知 sRGB 配置文件(iccp:Not recognizing known sRGB profile that has been edited)

问题 在我的 Xamarin 跨平台 PCL 项目中不断出现以下警告: iccp:无法识别已编辑的已知 sRGB 配置文件 我应该怎么办 ? 回答1 如果您安装了图像魔法 http://www.imagemagick.org/script/command-line-processing.php 找 。 -name "*.png" -print -exec 转换 "{}" "{}" ";" 清理文件,并在此过程中使它们变小。 回答2 我在 Android Studio 上遇到了同样的问题。 只需清理项目,它应该可以工作。 回答3 我找到了一个可能有帮助的解决方法。 我下载了 ImageOptim 软件:https://imageoptim.com/(免费) 并转到文件夹 Xamarin/Android.Support.v7.AppCompat/21.0.3/embedded 并将图像拖入 imageoptim 并删除元数据。 那是固定的。 回答4 此警告是由于图像文件中存在不需要的字节或元数据。 这主要是由于 Android SDK 内部 libpng 的更新引起的。 尝试使用这些工具从相应的图像中删除元数据: 图像优化 图像魔术师 修图 回答5 有同样的问题。 试图删除并重新添加在控制台中显示的相同图像,另一个文件的名称无效(名称中带有“-”)。 修复另一个文件的名称

2021-06-13 06:51:26   android   xamarin   cross-platform   srgb

带声音的安卓视频循环缓冲区(Android Video Circular Buffer with Sound)

问题 我正在使用 Google 的开源示例: Grafika 。 我正在使用它的ContinuousCaptureActivity.java CircularBuffer 的实现在此活动中进行了演示,但生成的视频文件中不包含音频。 我想在此活动中添加音频录制功能,并以相同的 CircularBuffered 方式将录制的音频添加到视频中。 为了实现这一点,我探索了 MediaCodec 库,它是在 4.3+ 版本中引入的。 我还使用 MediaMuxer 来捕获视频和音频流并将它们混合成一个视频。 但是,我不确定如何将录音功能实现到ContinuousCaptureActivity.java类中。 任何帮助都受到高度赞赏。

2021-06-13 06:51:22   android   audio   video   android-mediacodec   grafika