GoogleCast集成简介

最近由于需要维护这一方面的东西,随即看了一下网络文档。发现中文圈还比较少。这篇就作为我的记录。详细的信息建议在在Google Cast官方文档里面查看,非常的全。Google Cast之前叫做Google Chromecast,可以把它理解成为一个SDK。硬件可以实现这样的SDK,例如国外的一些盒子,FireTV,PCCW的盒子以及谷歌自己的Chromecast硬件设备。**它的作用就是能将手机,Pad,浏览器的内容投射到连接有Chromecast设备的屏幕上。**挺方便的,在家看个YouTube或者在工作场所需要投屏展示内容的时候,都非常的便利。 Google Cast 分为两端:sender和receiver。就拿U2B举例子,在Android手机安装的软件叫做sender,在盒子里相应接收响应请求的叫做receiver。一般来Google自家的程序会有一个默认的由谷歌开发的receiver,当然还可以通过API自定义一个可以处理定制化的sender消息的receiver,例如TED的receiver。 Receiver的结构挺有意思,其实就是一个能运行Chrome的硬件设备,

Windows中自定义Git Bash

由于在公司是Windows10的环境,所以没有一个很好的命令行工具。PowerShell我觉得不行。我尝试过安装了子Linux系统,但是使用体验仍然很割裂,不是很舒服。兜兜转转,我最后选择了Git Bash。一来可以随Git安装,二来可以免费使用。只是每次打开Git Bash我都很难认真的用下去,因为,真的是有点丑。既然如此那就简单的改造下。 打开Git Bash的Options->Looks,发现默认的几个Theme就挺好看的,无非是字体大小和背景色不怎么舒服。点击Color Scheme Designer进入配色编辑网站。这个网站比较有意思,一般情况其他的配色网站都会提供现成的配色,它这里给你提供了一个调色盘。我尝试获取我修改好的配色后,发现并没有触发**.minttyrc**文件,不知道是不是我哪里操作不对。

那一年的校内网,风华正茂

早上看到消息说人人网被收购了,着实吃了一惊,不光是因为这个价格,还因为居然他们还活的可以。媒体上面没有做过多的报道,做了报道的也没有用太多的篇幅。好像这个地方已经被人所遗忘了。 在离开大学的这几年里,我还时不时的上去逛一圈,直到它把直播作为登陆后的首页,我就以季度为单位,偶尔上去看一下。每次看的时候,都有一种物是人非的错觉,曾经那么热闹喧嚣的一个社区,现在剩下的只是几年前的状态和历史上的今天。这种感觉,就像自己来到了曾经人头攒动的亚特兰蒂斯,如今剩下的就只有沉在水底的秘密。 对于我来说,从08年接触校内网,一直到14年大学毕业彻底离开人人网,这几年的人生经历和这个平台息息相关。从一个默默无闻的小透明,逐渐成为自己这个圈子里面摄影还算不错的一个文青。校内网还是承载了我很多的青春记忆,也见证了我们这一代人的那一段无处安放的青春。 最早吸引我注册校内的原因是,周围的朋友都在上面踢屁股。现在看来不过是很简单的一个带有互动PK性质的Flash小游戏罢了。你可以踢任何人的屁股,并且如果对方的屁股踢出的最远,那么你将会在排行榜展示出来。

Android show/hide softKeyboard

最近项目中需要有一个地方隐藏键盘和显示键盘。其实是一个比较简单的问题,但是由于我们项目架构的原因。一个Activity中内嵌了很多个Fragment,通过事件去驱动不同的Fragment展现出来。举个例子,注册流程实际上是一个Activity,然后其中包含了ResetPasswordFragment,forgetPasswordFramgent,loginFragment等等。如果用户在Login界面的EditView输入账号密码的时候,通过back键恢复到了上一个Activity的时候,键盘是无法隐藏掉的。 为了解决这个问题,我的第一次解决的方案是这样。通过在VM层中添加一个变量hideSoftKeyboard,然后给XML设定一个自定义的BindingAdapter,传入这个变量。 @BindingAdapter("showSoftKeyboard") public static void showSoftKeyboard(View view, Boolean showSoftKeyboard) { if (!showSoftKeyboard) { InputMethodManager

商品社会

听到《不说》这首歌的时候,脑子里面想起来的是小岳岳在《从你的世界路过》里面追着柳岩的出租车,大声狂哭的画面。我想每个人都会有这样一段经历,苦苦想要得到的,在某一个瞬间发现再也得不到了。哭过,嘶喊过,沉沦过,但最终我们仍然是会走出来的,无论是时间的作用,还是自己的作用。任何人都是不一样的个体,所以也就不存在标准答案。 当然我说的不单单指爱情,其实对于自己的梦想也是如此。小时候科学家和军人有可能是我们大部分人随口而出的一个未来职业。初中高中可能幻想自己能和娱乐明星一样,站在光鲜亮丽的舞台,让所有人知道自己不一样。上了大学希望自己能和都市白领一样挣很多的钱,过着小资且自由的生活。毕业工作几年后发现,这些梦就像天上的云朵一样,飘渺,虚无。我们和这些云接触最近的时候,也不过是穿行在平流层的那几个小时而已。当我认识到我无法像鸟一样飞向我梦想的那多云的时候,

RxJava ignoreElement改造成Completable

这两天被一个RxJava的操作符给坑了,就是ignoreElement()。我们在Post一个请求的时候,例如上传用户信息到API当中。 public Observable<Void> delete(String profileId) { return accountApi.deleteProfileById(profileId, null) .ignoreElements(); } 如果这样写的话,会导致上在调用这个delete接口的时候,无法执行**onNext()**里面的逻辑,为什么会这个样子,具体文档里面给的图 很简单明了就可以知道。可以看看ignoreElements这个Operator怎么实现的: public static <T> OperatorIgnoreElements&

向前一步假装自信直到变得自信

洗澡的时候无意中在想,为什么有的人不愿意接受更加美好的东西,例如说有更好的视频网站Youtube,有更好的聊天软件Telegram,有更好的搜索引擎Google。 阻碍他们的,我想不是那一条绵延的长城,而是自己不愿意尝试以及接受更加美好的事物。我在想,大家如果都在资源匮乏的时候,会不会就没有这样的问题。什么意思,我指的是,倘若当前社会的资源极度缺乏。那么我们所有的选择就压根没得选,既然没得选,那我也只能被选择这样。比如说,在搜索引擎刚刚在中国开始起步的时候,国内如果想用搜索引擎,有很多选择,Google,Yahoo,Baidu。那么对于个人来说,你可以自由的选择你想用的。这没有问题,选择权在你手上。 但如果突然有一天,你发现你用不了Google之后,转向了Baidu,Sogou,SoSo,

Git Reset 三种模式

日常的工作当中,由于需要和别人协同工作,代码方面当然就直接使用Git的方式来管理了。在日常使用当中有很多命令比较常用 git commit git push git stash git rebase -i HEAD~想要合并的Commit数量 git reset git rebase 我在这一篇文章已经做了一点讲解,应该使用起来都比较方便。值得一提的是,可以使用git rebase -abort来撤销一次rebase。 今天来说一下git reset。它的一句话概括 git-reset - Reset current HEAD

EidtText点击事件第一次不生效

这两天在开发一个功能的时候,发现项目的UX要求EditText点击出来一个AlterDialog。在一顿setOnClickListener操作之后,我发现了一个小问题。在点击的时候,需要点第二次才会show出来这个Dialog。原因是EditText这个控件需要在第一次点击的时候获取焦点,第二次点击才触发OnClick事件。非常合理,因为EditText的作用是为了输入文字,所以需要先获取焦点。 查了下资料,发现改为onTouchListener就可以解决问题,只不过这里需要注意下OnTouch会调用两次,在手指按下和释放的时候。因此,需要添加一个flag来消除这个操作。 view.setOnTouchListener(new View.OnTouchListener() { int touch_flag = 0; @Override public boolean onTouch(View view, MotionEvent

DialogFragment can not perform this action after onSaveInstanceState

最近在Fibric上面监控到了这样的一个Bug,可以看到是调用**DialogFragment.show()**报的异常。 Caused by java.lang.IllegalStateException Can not perform this action after onSaveInstanceState android.support.v4.app.FragmentManagerImpl.checkStateLoss (FragmentManager.java:2053) android.support.v4.app.FragmentManagerImpl.enqueueAction (FragmentManager.