明明都失业了,还蛋疼把 GR Remote 网页做成了 APP(理光 GRII 机友看过来 - V2EX
V2EX = way to explore
V2EX 是一个关于分享和探索的地方
现在注册
已注册用户请  登录
morning
V2EX    Android

明明都失业了,还蛋疼把 GR Remote 网页做成了 APP(理光 GRII 机友看过来

  •  1
     
  •   morning 2016-07-19 20:22:53 +08:00 19170 次点击
    这是一个创建于 3385 天前的主题,其中的信息可能已经有所发展或是发生改变。
    展示:

    Imgur

    youtube

    简介:

    简单说就是把这个 GR Remote 网页做了缓存,然后提供 wifi 绑定、重连功能。 以节省流量和时间,方便使用。

    使用方法:
    • 初次使用要联网下载页面,请耐心等待。
    • 自动连接相机网络这里,需要把页面滑动到底部,弹出设置页面,进入绑定列表,选择相机 wifi 进行绑定。

    注:

    1. 要求系统版本 6.0 及以上;
    2. 这里的绑定,只能绑定连接成功过的 wifi 网络,因为考虑到人与人之间的信任,就不提供输入密码这种方式啦;
    起因:

    把 K5-IIs 卖了,上个月买的 GRII ,拿出去真的太方便了。

    装了一个 Image Syn ,可以同步照片,可是里边的远程控制功能无效,上周一的时候突然想起来在哪里看到说可以远程控制的,然后去官网找到了网页版的,号称可以实现除了开机和弹起闪光之外的全部功能。(其实还实现了触摸对焦、左右反转、按键锁定和关闭镜头)。

    官方提供了两个版本,一个是普通网页版本,一个是 DOM 离线缓存, 但实际使用其实只能先联网打开网页,然后切换到相机的 wifi 热点,加载太慢了。

    于是想把这个网页用 WebView 缓存,然后提供 wifi 绑定、重连功能。 这样就节省了流量和时间,不用手动连相机 wifi 啦。

    主要流程:
    1. 启动时判断当前 wifi 状态,已打开则连接之前存储的 wifi 热点(如果有),关闭则打开;
    2. 广播接收网络关闭和连接改变:网络关闭,尝试打开,打开则尝试连接绑定的热点;已连接到热点,判断是否是绑定的网络,如果不是则去连接绑定的网络;
    3. 网页:载入网页,监听加载进度,加载完成时关闭启动动画并显示网页;
    4. 监听滚动事件,判断是否到底部,是的话则弹出设置菜单;
    遇到的坑:

    功能其实很简单,但是坑很多

    1. 页面加载不完全,没有启用:settings.setDomStorageEnabled(true)
    2. 本来为了展示 想删除几个已配置的网络,结果搞了半天 removeNetwork()方法都无效,查了一下发现在 6.0 里不给用了。 http://stackoverflow.com/questions/32756690/android-m-unable-to-remove-wi-fi-ap-programmatically
    3. 好奇像 wifiManager.isWifiEnabled()这种方法是不是才加上的,网上的例子都是自己判断;
    4. 系统 4.2 以后获取的 SSID 是双引号;
    现存问题:
    1. 网页版把 顶部、左、右 都占用了,所以只好放在底部滑出。 只是使用了 webView.setOnScrollChangeListener()判断网页是否到达底部,问题就是 只能网页不在底部的时候才能划出,然后左右滑动的页面或者 about 页面 拖动也会弹出菜单;(解决方法是 判断到达底部后 等待 2 秒然后滚动回顶部,但觉得这样不太好);
    2. bottom sheet 有时会弹出多个;
    3. 我的连接 wifi 策略是只要应用运行就会强制连接 绑定的 wifi ,这样万一没有退出而是切换到其他 app 了, wifi 是没法改变的;

    希望可以提供一下思路,不过找到工作前大概不会修复了。

    下载地址

    https://github.com/BorntoGO/GR-Remote-Package/blob/master/app/GR_Remote_0.1.apk

    项目地址

    https://github.com/BorntoGO/GR-Remote-Package

    感想:
    1. 有段事件没搞 Android ,深切体会到了前同事的那句“面向 Google 编程”;
    2. 命名和结构都不太规范的问题,应该从一开始就规范好,后面项目越庞大越难以规范;
    3. 看了下 Image Syn 这个 APP ,是用 Cordova 搞的,然后又有个网页版,既然都是网页为什么不整合在一起;

    说一下标题,公司解散了,已经玩了两个星期,结果发现实在无法安心踏实的玩啊, 虽然工资没有准时发,但信用卡账单还是准时躺在邮箱了呢 (手动 doge )。

    第 1 条附言    2016-07-20 12:11:45 +08:00

    额,为了节省时间 说明一下,我在杭州,找 后端 node.js 方面的工作,Android方面暂不考虑,谢谢。

    8 条回复    2016-07-26 23:39:43 +08:00
    SoloCompany
        1
    SoloCompany  
       2016-07-19 22:37:47 +08:00
    理光开发的这两个软件( Image Sync 和 GR Remote )真是渣透顶了
    真不如买个带 wifi 的储存卡省心,别人软件写的至少比它好一千倍
    morning
        2
    morning  
    OP
       2016-07-19 23:14:57 +08:00
    @SoloCompany 是的,感觉太不走心了, js 文件不压缩就算了,尤其是 Image Sync 这个,每次我看到有一半功能不能用就很蛋疼,不能用就别让我看见啊。
    windfarer
        3
    windfarer  
       2016-07-19 23:16:50 +08:00
    grd iii 用户前来支持,送上一枚 star
    morning
        4
    morning  
    OP
       2016-07-19 23:25:59 +08:00
    @windfarer 难得遇见机友,感谢支持,我差不多也该踏上收集星星的征途啦~
    mutalisker
        5
    mutalisker  
       2016-07-20 00:24:43 +08:00 via iPhone
    最近用 sony 的 app 也一个的德行的难用,传统厂商就做不好这些
    bbwk
        6
    bbwk  
       2016-07-20 10:21:21 +08:00
    hello~ 有联系方式嘛 想和您聊聊~
    morning
        7
    morning  
    OP
       2016-07-20 12:07:03 +08:00
    @bbwk justregisterid#gmail.com/61367831
    mutalisker
        8
    mutalisker  
       2016-07-26 23:39:43 +08:00 via iPhone
    最近用 sony 的 app 也一个的德行的难用,传统厂商就做不好这些
    关于     帮助文档     自助推广系统     博客     API     FAQ     Solana     2470 人在线   最高记录 6679       Select Language
    创意工作者们的社区
    World is powered by solitude
    VERSION: 3.9.8.5 24ms UTC 06:14 PVG 14:14 LAX 23:14 JFK 02:14
    Do have faith in what you're doing.
    ubao msn snddm index pchome yahoo rakuten mypaper meadowduck bidyahoo youbao zxmzxm asda bnvcg cvbfg dfscv mmhjk xxddc yybgb zznbn ccubao uaitu acv GXCV ET GDG YH FG BCVB FJFH CBRE CBC GDG ET54 WRWR RWER WREW WRWER RWER SDG EW SF DSFSF fbbs ubao fhd dfg ewr dg df ewwr ewwr et ruyut utut dfg fgd gdfgt etg dfgt dfgd ert4 gd fgg wr 235 wer3 we vsdf sdf gdf ert xcv sdf rwer hfd dfg cvb rwf afb dfh jgh bmn lgh rty gfds cxv xcv xcs vdas fdf fgd cv sdf tert sdf sdf sdf sdf sdf sdf sdf sdf sdf sdf sdf sdf sdf sdf sdf sdf sdf sdf sdf sdf sdf sdf sdf sdf sdf sdf sdf sdf sdf sdf sdf sdf sdf sdf sdf sdf sdf sdf sdf sdf shasha9178 shasha9178 shasha9178 shasha9178 shasha9178 liflif2 liflif2 liflif2 liflif2 liflif2 liblib3 liblib3 liblib3 liblib3 liblib3 zhazha444 zhazha444 zhazha444 zhazha444 zhazha444 dende5 dende denden denden2 denden21 fenfen9 fenf619 fen619 fenfe9 fe619 sdf sdf sdf sdf sdf zhazh90 zhazh0 zhaa50 zha90 zh590 zho zhoz zhozh zhozho zhozho2 lislis lls95 lili95 lils5 liss9 sdf0ty987 sdft876 sdft9876 sdf09876 sd0t9876 sdf0ty98 sdf0976 sdf0ty986 sdf0ty96 sdf0t76 sdf0876 df0ty98 sf0t876 sd0ty76 sdy76 sdf76 sdf0t76 sdf0ty9 sdf0ty98 sdf0ty987 sdf0ty98 sdf6676 sdf876 sd876 sd876 sdf6 sdf6 sdf9876 sdf0t sdf06 sdf0ty9776 sdf0ty9776 sdf0ty76 sdf8876 sdf0t sd6 sdf06 s688876 sd688 sdf86