Android 无线隔空调试,扔掉烦人的数据线

Publish: January 19, 2021 Category: 编程 No Comments

Ios的无线调试是真的好用,几乎可以不用数据线的情况下完成大部分任务。那Android是否也可以使用无线调试呢?当然可以!

第一步
保证计算机网络和手机网络在同一网络下。将手机使用数据线连接上计算机USB,打开USB调试模式。等待驱动等各种准备工作完成,使用如下命令查看是否连接成功。

adb devices
#如果成功会返回如下内容
C:\Users\yinli>adb devices
adb server version (31) doesn't match this client (41); killing...
* daemon started successfully
List of devices attached
931c9033        device

阅读剩余部分...

联通蜂窝物联网卡平台对接指导

Publish: January 6, 2021 Category: 编程 No Comments

联通物联网卡平台提供了大部分管理能力。以新的“连接管理--蜂窝安全为例”,可以实现订单、设备、短信、通讯计划、账单用量、账户和资费计划管理。具体接口地址如下:

接口名    URL    
API轮询APN    https://gwapi.10646.cn/api/wsGetPollApn/V1/1Main/vV1.1    
API账单查询    https://gwapi.10646.cn/api/wsGetInvoice/V1/1Main/vV1.1    
API设备用量查询    https://gwapi.10646.cn/api/wsGetTerminalUsage/V1/1Main/vV1.1    
API短信查询    https://gwapi.10646.cn/api/wsQuerySMS/V1/1Main/vV1.1    
API短信详情查询    https://gwapi.10646.cn/api/wsQuerySMSDetail/V1/1Main/vV1.1    
查询指定设备可用事件资费计划    https://gwapi.10646.cn/api/wsGetAvailableEvents/V1/1Main/vV1.1    
API安吉星查询设备实时信息    https://gwapi.10646.cn/api/wsGetDeviceRealTimeInfo/V1/1Main/vV1.1    
查询给定日期和时间后发生修改的设备    https://gwapi.10646.cn/api/wsGetModifiedTerminals/V1/1Main/vV1.1    
返回一个或多个设备的通信计划    https://gwapi.10646.cn/api/wsGetNetworkAccessconfig/V1/1Main/vV1.1    
查询设备最近某种属性的修改结果    https://gwapi.10646.cn/api/wsGetProvisioningStatus/V1/1Main/vV1.1    
查询一个或多个设备的当前会话信息    https://gwapi.10646.cn/api/wsGetSessionInfo/V1/1Main/vV1.1    
查询一个设备的变更记录详情    https://gwapi.10646.cn/api/wsGetTerminalAuditTrail/V1/1Main/vV1.1    
查询指定设备关联的事件资费计划    https://gwapi.10646.cn/api/wsGetTerminalEvents/V1/1Main/vV1.1    
返回给定设备的当前基本资费计划和所有排队资费计划    https://gwapi.10646.cn/api/wsGetTerminalRating/V1/1Main/vV1.1    
返回与给定的一组设备IMSI对应的ICCID列表    https://gwapi.10646.cn/api/wsGetTerminalsByImsi/V1/1Main/vV1.1    
返回与给定的一组设备MSISDN对应的ICCID列表    https://gwapi.10646.cn/api/wsGetTerminalsByMsisdn/V1/1Main/vV1.1    
API返回给定设备在一个特定计费周期内发生的所有流量会话的相关信息    https://gwapi.10646.cn/api/wsGetTerminalUsageDataDetails/V1/1Main/vV1.1    
API返回一个设备在某个特定计费周期内接到或拨打的所有通话呼叫的相关信息    https://gwapi.10646.cn/api/wsGetTerminalUsageGsmDetails/V1/1Main/vV1.1    
API返回一个设备在某个特定计费周期内发出或收到的所有短信的相关信息    https://gwapi.10646.cn/api/wsGetTerminalUsageSmsDetails/V1/1Main/vV1.1    
API查询设备最近某种属性的修改结果    https://gwapi.10646.cn/api/wsStatus/V1/1Main/vV1.1    
修改迁移卡状态    https://gwapi.10646.cn/api/wsUpdateStatusMigrationSim/V1/1Main/vV1.1    
API新建APN    https://gwapi.10646.cn/api/wsCreateNewApn/V1/1Main/vV1.1    
Japan离线计费APN维护接口    https://gwapi.10646.cn/api/wsUpdateJasperOfflineCharingAPN/V1/1Main/vV1.1    
修改订单信息    https://gwapi.10646.cn/api/wsUpdateOrderInfo/V1/1Main/vV1.1    
更新订单状态(更新参数)    https://gwapi.10646.cn/api/wsUpdateOrderStatus/V1/1Main/vV1.1    
API通过SIM卡ID批量发送短信    https://gwapi.10646.cn/api/wsSendBulkSms/V1/1Main/vV1.1    
API通过MSISDN批量发送短信    https://gwapi.10646.cn/api/wsSendBulkSmsToMsisdn/V1/1Main/vV1.1    
API通过SIM卡ID发送短信    https://gwapi.10646.cn/api/wsSendSms/V1/1Main/vV1.1    
API通过MSISDN发送短信    https://gwapi.10646.cn/api/wsSendSmsToMsisdn/V1/1Main/vV1.1    
为设备分配事件资费计划    https://gwapi.10646.cn/api/wsActivateTerminalEvent/V1/1Main/vV1.1    
向设备队列的开头添加一个资费计划    https://gwapi.10646.cn/api/wsAddPlanInBeginQueue/V1/1Main/vV1.1    
向设备队列的末尾添加一个资费计划    https://gwapi.10646.cn/api/wsAddPlanInLastQueue/V1/1Main/vV1.1    
为特定设备取消预定事件    https://gwapi.10646.cn/api/wsDeleteTerminalEvent/V1/1Main/vV1.1    
更改与给定设备相关联的通信计划    https://gwapi.10646.cn/api/wsEditNetworkAccessConfig/V1/1Main/vV1.1    
为给定设备更改单个属性的值    https://gwapi.10646.cn/api/wsEditTerminal/V1/1Main/vV1.1    
查询一个或多个设备详情    https://gwapi.10646.cn/api/wsGetTerminalDetails/V1/1Main/vV1.1    
从设备队列中删除指定资费计划    https://gwapi.10646.cn/api/wsRemoveRatePlanFromQueue/V1/1Main/vV1.1    
强制设备断开网络    https://gwapi.10646.cn/api/wsSendCancelLocation/V1/1Main/vV1.1    
更改给定设备IP地址    https://gwapi.10646.cn/api/wsUpdateIpAddress/V1/1Main/vV1.1    
API订单新建    https://gwapi.10646.cn/api/wsCreateOrderApi/V1/1Main/vV1.1    
API新建或删除    https://gwapi.10646.cn/api/wsInsertOrDeleteAPI/V1/1Main/vV1.1    
API查询测试    https://gwapi.10646.cn/api/wsSelectAPI/V1/1Main/vV1.1    
编辑账户    https://gwapi.10646.cn/api/wsEditAcct/V1/1Main/vV1.1    
新建账户    https://gwapi.10646.cn/api/wsNewAcct/V1/1Main/vV1.1    
查询账户详情    https://gwapi.10646.cn/api/wsQueryAcctDet/V1/1Main/vV1.1    
查询账户列表    https://gwapi.10646.cn/api/wsQueryAcctTable/V1/1Main/vV1.1    
根据账户名查询账户ID    https://gwapi.10646.cn/api/wsQueryIdbyName/V1/1Main/vV1.1    
根据运营商账户名查询账户ID    https://gwapi.10646.cn/api/wsQueryIdbyServiceProCode/V1/1Main/vV1.1    
API可用事件资费计划查询    /api/query/eventplan/available/V1/1Main/vV1.1    
API关联事件资费计划查询    /api/query/eventplan/terminal/V1/1Main/vV1.1    
API分配事件资费计划    /api/operate/eventplan/activate/V1/1Main/vV1.1    
API删除事件资费计划    /api/operate/eventplan/delete/V1/1Main/vV1.1

联通蜂窝网络物联网卡平台对接签名,PHP版本的签名算法
token签名,参与签名字段只有app_id timestamp trans_id
物联网卡签名算法描述

1.蜂窝安全API接口时参数分为鉴权参数和业务负载参数,
2.鉴权权参数各个接口相同,包括appid,timestamp,trans_id,token四个参数,
  其中app_id为开通API功能时提供给企业用户,timestamp和trans_id的值由用户自行指定,token为签名字段,
  其值是根据app_id,timestamp,trans_id三个参数的值,再加上提供给企业客户的app_secret值,四个值经过
  加密算法计算得出,具体请参考《能力使用者接入指引 V2.7》中的sdk代码实现
{
"app_id":"XXXXXX",
"timestamp":"2018-12-05 10:23:35 649",
"trans_id":"XXXXXX",
"token":"XXXXXXXXXXXXXXXXXXXXXXXXX",
"data" :{
        "messageId": "134536",
        "openId": "xxxxxxxxxx",
        "version": "1.0",
        "iccids":["89860919720022503597"]
    }
}
4.data中为业务负载参数,格式参考各个接口的接口文档


阅读剩余部分...

Inflxudb2 任务使用简介之1.0版本中连续查询如何转换为任务

Publish: December 1, 2020 Category: 编程,运维 No Comments

influxdb1.x版本中支持的CQs(连续查询)在influxdb2.x中被task取代,全新定义了一套新的规则,我们暂且称之为任务规则。
如果你是从1.x版本中迁移数据,可以直接将1.x中的CQs直接转换成task来执行比如我之前的一段CQs:

create continuous query flow_rx_cq on multiwan 
begin  
    select sum(value) 
    into "multiwan_inf"."autogen"."flow_rx_cq_result" 
    from multiwan_raw_rx 
    group by time(30m), flashid,imei,imsi,iccid 
end

转换之后对应的是

from(bucket: "multiwan/")
  |> range(start: -3d)
  |> filter(fn: (r) => r._measurement == "multiwan_raw_rx")
  |> filter(fn: (r) => r._field == "value")
  |> aggregateWindow(every: 1m, fn: sum)
  |> set(key: "_measurement", as: "flow_rx_cq_result")
  |> to(
    org: "example-org",
    bucket: "multiwan/flow_rx_cq"
  )

上面的命令是如下意思:
在multiwan的bucket中,创建一个连续查询结果存放在multiwan_rx_cq_result中,数据来源是multiwan_raw_rx 每一分钟执行一次计算value字段的累计结果值。
在命令行中执行

使用raw Flux创建一个任务

influx task create --org my-org - # <return> to open stdin pipe


options task = {
  name: "flow_rx_task_result",
  every: 6
}

# <ctrl-d> to close the pipe and submit the command 按ctrl+d 关闭管道并提交

自行构建并使用Jitsi-Meet SDK artifacts/binaries

Publish: November 20, 2020 Category: 编程 No Comments

正常来说无需自己编译sdk,使用官方提前编译好的sdk即可。

下面是从我的demo中摘出来的gradlepei'zhi
app中的build.gradle

plugins {
    id 'com.android.application'
}
    
android {
    compileSdkVersion 30
    buildToolsVersion '28.0.3'

    defaultConfig {
        applicationId "com.evenvi.jitsimeets1"
        minSdkVersion 26
        targetSdkVersion 30
        versionCode 1
        versionName "1.0"

        testInstrumentationRunner "androidx.test.runner.AndroidJUnitRunner"
    }

    buildTypes {
        release {
            minifyEnabled false
            proguardFiles getDefaultProguardFile('proguard-android-optimize.txt'), 'proguard-rules.pro'
        }
    }
    compileOptions {
        sourceCompatibility JavaVersion.VERSION_1_8
        targetCompatibility JavaVersion.VERSION_1_8
    }
}

dependencies {

    implementation 'androidx.appcompat:appcompat:1.2.0'
    implementation 'com.google.android.material:material:1.1.0'
    implementation 'androidx.constraintlayout:constraintlayout:2.0.4'
    testImplementation 'junit:junit:4.+'
    androidTestImplementation 'androidx.test.ext:junit:1.1.2'
    androidTestImplementation 'androidx.test.espresso:espresso-core:3.3.0'

    implementation ('org.jitsi.react:jitsi-meet-sdk:2.+') { transitive = true }
}

项目中的build.gradle

// Top-level build file where you can add configuration options common to all sub-projects/modules.
buildscript {
    repositories {
        google()
        jcenter()
    }
    dependencies {
        classpath "com.android.tools.build:gradle:4.1.1"

        // NOTE: Do not place your application dependencies here; they belong
        // in the individual module build.gradle files
    }
}

allprojects {
    repositories {
        google()
        jcenter()
        maven {
            url "https://github.com/jitsi/jitsi-maven-repository/raw/master/releases"
        }
    }
}

task clean(type: Delete) {
    delete rootProject.buildDir
}

首先,请确保正确设置您的开发环境。

关于依赖项的说明:除了SDK之外,Jitsi还为Jitsi Maven存储库发布了一些SDK依赖项的二进制Maven工件(否则无法公开获得)。当您计划使用从源代码构建的SDK时,您可能会使用比用于创建二进制SDK工件的源代码版本新的(或至少是不同的)源代码版本。 因此,项目中将需要的依赖项也可能与Jitsi Maven存储库中发布的依赖项不同。这可能会由于不可用的依赖关系而导致构建问题。


阅读剩余部分...

VMWare自动解锁工具unlocktool3.0.3下载

Publish: November 14, 2020 Category: 编程 No Comments

纯粹做个镜像,适用于VMWare Static 15版本

链接: https://pan.baidu.com/s/16AphwcMRjKUI8g_X4ODhrw 提取码: rnn6

出现以下错误

unlock permission denied vmwarebase.dll

请使用新版本

Apple macos