网站LOGO
NianYi's blog
页面加载中
10月5日
网站LOGO NianYi's blog
Hello Word!
菜单
  • 热评
    用户的头像
    首次访问
    上次留言
    累计留言
    我的等级
    我的角色
    打赏二维码
    打赏博主
    iOS多开微信实时推送方式
    点击复制本页信息
    微信扫一扫
    文章二维码
    文章图片 文章标题
    创建时间
  • 一 言
    确认删除此评论么? 确认
  • 本弹窗介绍内容来自,本网站不对其中内容负责。
    • 复制图片
    • 复制图片地址
    • 百度识图
    按住ctrl可打开默认菜单

    iOS多开微信实时推送方式

    NIANYI · 原创 ·
    代码教程 · 暂无标签
    共 5072 字 · 约 3 分钟 · 62
    本文最后更新于2024年08月11日,已经过了55天没有更新,若内容或图片失效,请留言反馈

    双开微信+推送≠耗电


    写在前面
    该方法你必须知道怎么双开了微信,并苦恼于实时推送或耗电问题,不然这篇文章很难啃。
    安卓版本的可以离开了。

    完美实现推送,收到微信后2秒钟左右手机收到通知,0耗电,杀死微信并不影响推送,和正版微信一样使用。


    代码实现

    我尝试通过判断闪烁的图标来推送消息,问题就是锁屏之后就无法识别,而且我的笔记本平时只远程使用,只能通过笔记本微信发出声音我才知道收到消息,所以这里采用判断声音,来推送通知到手机。

    确定设备号

    `首先你需要确定你的声卡设备号,这段python可以列出当前设备下面所有声卡,并记下编号。

    Python 代码:
    import pyaudio
    
    # 初始化PyAudio
    p = pyaudio.PyAudio()
    
    # 获取系统中的声卡设备数量
    device_count = p.get_device_count()
    
    # 打印每个设备的信息
    for i in range(device_count):
        device_info = p.get_device_info_by_index(i)
        print("Device {0}: {1}, {2} channels".format(i, device_info['name'], device_info['maxInputChannels']))
    
    # 选择要监听的声卡设备索引
    selected_device_index = 0  # 修改为你要监听的声卡设备索引
    
    # 关闭PyAudio

    `

    文中例子使用的是Device 2 编号是2,请注意,后面的2 channels也要记住,下面代码需要用到。
    channels是0的就不要用了,至少我测试用不了。

    Pyhton使用PyAudio库

    PyAudio 是一个 Python 库,提供了与音频输入和输出设备进行交互的功能。它允许你在 Python 中录制声音、播放声音以及处理音频流。可以录制、播放、处理和设备管理。

    Python 代码:
    import pyaudio
    import numpy as np
    import time
    import requests
    
    # 设定参数
    FORMAT = pyaudio.paInt16
    CHANNELS = 2
    RATE = 48000
    CHUNK = 1024
    THRESHOLD = 1000  # 设置一个阈值,用于检测声音的强度
    TIME_INTERVAL = 10  # 输出时间的间隔(秒)
    API_URL = "https://www.example.com/tSe5Wf8zWuXXXXXX/微信小号/收到一条新消息?icon=https://cdn-images.lincloud.pro/blog/images/wechat.jpg&sound=healthnotification&group=微信通知&isArchive=0&url=pkc://"
    
    def run_script():
        while True:
            try:
                
                # 初始化 PyAudio
                p = pyaudio.PyAudio()
    
                # 获取系统中的声卡设备数量
                device_count = p.get_device_count()
    
                # 选择要监听的声卡设备索引(请修改以下行,选择合适的声卡设备索引)
                selected_device_index = 2  # 修改为你想要监听的声卡设备索引
    
                # 打开选定的声卡设备
                stream = p.open(format=FORMAT,
                                channels=CHANNELS,
                                rate=RATE,
                                input=True,
                                input_device_index=selected_device_index,
                                frames_per_buffer=CHUNK)
    
                print("Listening for any sound...")
    
                last_detection_time = 0  # 记录上次检测到声音的时间戳
    
                while True:
                    # 读取音频数据
                    data = stream.read(CHUNK)
                    # 将数据转换为numpy数组
                    np_data = np.frombuffer(data, dtype=np.int16)
                    # 计算音频数据的能量
                    energy = np.sum(np_data ** 2) / len(np_data)
                    
                    # 如果能量超过阈值,则认为检测到了声音
                    if energy > THRESHOLD:
                        # 获取当前时间
                        current_time = time.time()
                        # 如果距离上次检测到声音的时间大于等于设定的时间间隔,则输出当前时间并发起GET请求
                        if current_time - last_detection_time >= TIME_INTERVAL:
                            # 输出当前时间
                            print("Sound detected at:", time.strftime("%Y-%m-%d %H:%M:%S"))
                            # 发起GET请求
                            response = requests.get(API_URL)
                            # 打印请求结果
                            print("GET request status:", response.status_code)
                            # 更新上次检测到声音的时间戳
                            last_detection_time = current_time
            except Exception as e:
                print("An error occurred:", e)
                print("Restarting the script...")
            finally:
                # 停止音频流
                if 'stream' in locals() and stream.is_active():
                    stream.stop_stream()
                    stream.close()
                # 关闭 PyAudio
                p.terminate()
    
    run_script()
    
    

    不能照抄,需要修改的内容有CHANNELS(声道数量值一般是1,2)。RATE(采样率44100,48000)。TIME_INTERVAL(间隔时间10秒推送一次)。selected_device_index(设备编号,第一步获取并记下的设备编号)
    脚本解释: 这个脚本主要是监听声卡(脚本是监听立体混音),如果收到微信消息(发出声音)就推送消息(使用Bark,如不懂请参考这篇文章)到手机,最短通知间隔10秒。
    **实测收到消息几秒钟之后就收到推送。微信无需后台,正真做到和正版微信一样。

    可能有人会问为什么不直接识别微信波形文件来推送,这样电脑发出其他声音也不会影响推送,事实是可以的,但是波形文件只有2秒钟,经过测试准确率不高,如果能结合算法优化脚本,是可以实现精准推送,如果哪位大佬愿意优化脚本,或者有更好的实现方式可以留言探讨。**


    进阶推送

    如果成功设置了推送,还可以设置点击推送消息自动跳转到对应的微信小号,非常方便
    你需要安装轻松签来修改Bundleurl 参数
    注意!这步修改完之后无法被第三方应用调用!比如,无法被游戏或应用调用授权登录等等。
    也可以尝试其他苹果自签应用

    配置方法有两种

    • 第一种

    以轻松签为例,打开应用-点击需要“多开的app”-查看文件位置-点击xxx.app-查看文件-找到并点击 Info.plist-属性编辑器。

    如下图所示,一级一级找到

    text 代码:
    CFBundleURLType
    | item 0
    | CFBundleURLSchemes
    | itme 1 - weixin
    将 weixin 改为 pkc ,保存。
    • 第二种

    如果在 info.plist 用属性方式打开找不到 CFBundleURLTypes ,那就自己通过“文本编辑器”打开,拉到最后倒数第二行上面插入,添加以下代码:

    JavaScript 代码:
        <key>CFBundleURLTypes</key>
    <array>
      <dict>
        <key>CFBundleURLSchemes</key>
        <array>
          <string>pkc</string>
        </array>
      </dict>
    </array>

    到这一步就全部结束了,可以开心愉快的玩耍了。看不惯 Bark 的原版红色推送图标的话,可以在 Bark 应用里更换其他的通知图标。 有能力可以替换其他推送应用~

    声明:本文由 NIANYI(博主)原创,依据 CC-BY-NC-SA 4.0 许可协议 授权,转载请注明出处。
    现在已有

    5

    条评论
    我要发表评论
    1. 头像
      nspexshaob
      • 等级:Lv.1
      • 角色:访客
      • 在线:本月

      不错不错,我喜欢看

      · ·
    2. 头像
      jhkmmeerft
      • 等级:Lv.1
      • 角色:访客
      • 在线:本月

      叼茂SEO.bfbikes.com

      · ·
    3. 头像
      jpwwwypopp
      • 等级:Lv.1
      • 角色:访客
      • 在线:本月

      怎么收藏这篇文章?

      · ·
    4. 头像
      yxtauibpai
      • 等级:Lv.1
      • 角色:访客
      • 在线:本周

      看的我热血沸腾啊https://www.237fa.com/

      · ·
    5. 头像
      sxymgivwsn
      • 等级:Lv.1
      • 角色:访客
      • 在线:今日

      不错不错,我喜欢看 https://www.ea55.com/

      · ·
    博客logo NianYi's blog Hello Word!

    💻️ NIANYI 8月24日 在线

    🕛

    本站已运行 1 年 314 天 23 小时 11 分

    🌳

    自豪地使用 Typecho 建站,并搭配 MyLife 主题
    NianYi's blog. © 2022 ~ 2024.
    网站logo

    NianYi's blog Hello Word!
     
     
     
     
     
     
     
     

    5

    1

  • 下一篇