import asyncio
import json
import websockets
from androidhelper import Android

droid = Android()
droid.startSensingTimed(1, 150)


async def get_oriention(websocket, path):

    while True:

        #orientation_result = droid.sensorsReadOrientation().orientation_result
        orientation_result = droid.sensorsReadOrientation().result
        orientation_json = json.dumps({
            "azimuth": '%.4f' % orientation_result[0],
            "pitch": "%.4f" % orientation_result[1],
            "roll": orientation_result[2]
        })

        await websocket.send(orientation_json)
        await asyncio.sleep(0.01)


def main():

    start_server = websockets.serve(get_oriention, '0.0.0.0', 8765)

    websocket_loop = asyncio.get_event_loop()
    websocket_loop.run_until_complete(start_server)
import asyncio
import json
import websockets
from androidhelper import Android

droid = Android()
droid.startLocating(1, 1000)
delay_time = 2.0


async def get_location(websocket, path):

    while True:

        current_location = droid.readLocation().result

        if not current_location:

            current_location = droid.getLastKnownLocation().result

        if ("gps" not in current_location.keys()) or (
                not current_location["gps"]):

            delay_time = 10.0

        else:

            delay_time = 2.0

        await websocket.send(json.dumps(current_location))
        await asyncio.sleep(delay_time)
Exemple #3
0
class QPython3(object):
    # 初始化
    def __init__(self):
        self.regex = re.compile('证码为.*【(\d+)】')  # regex
        self.start_time = datetime.datetime.now()
        # Android QPython3
        self.droid = Android()
        logging.debug("QPython3 实例初始化完成")

    # 读取验证码短信
    def _get_sms_verify_code(self):
        # init
        self.start_time = datetime.datetime.now()
        code = '000000'
        retry = 600
        # loop
        logging.debug("嗅探短信中……")
        while retry > 0:
            retry -= 1
            # 检查 SMS
            code = self._check_sms_verify_code()
            # 有效验证码?
            if code != '000000':
                logging.debug("取得有效验证码……" + code)
                break
            else:
                logging.debug("未找到有效验证码……重试中, retry = {}".format(retry))
                time.sleep(0.05)
        else:
            logging.debug("未找到有效验证码……" + code)
        return code

    # 读取验证码短信
    def _check_sms_verify_code(self):
        # init
        code = '000000'
        # 获取当前的全部未读短信
        smsMessageIds = self.droid.smsGetMessageIds(True)
        # 无短信退出
        if len(smsMessageIds.result) == 0:
            logging.debug("无短信退出……")
            return code
        # loop
        for smsId in smsMessageIds.result:
            # get message
            smsMessage = self.droid.smsGetMessageById(smsId)
            # 时间筛选
            smsTimestamp = datetime.datetime.fromtimestamp(
                int(smsMessage.result['date']) / 1e3)
            # 跳过开始时间点前 SMS
            if smsTimestamp < self.start_time:
                # print("时间跳过:", smsMessage)
                continue
            # 文字匹配
            smsContent = smsMessage.result['body']
            res = self.regex.search(smsContent)
            if res is None:
                # print("匹配跳过:", smsMessage)
                continue
            else:
                # print("发现短信:", smsMessage)
                code = res.group(1).strip()
                break
        return code

    # 获取验证码的外部调用
    def get_verify_code(self):
        logging.debug("获取验证码中……")
        # 读取验证码短信
        return self._get_sms_verify_code()
Exemple #4
0
from androidhelper import Android
import time

droid = Android()
droid.startSensingTimed(1, 250)
time.sleep(1)
s1 = droid.readSensors().result
s2 = droid.sensorsGetAccuracy().result
s3 = droid.sensorsGetLight().result
s4 = droid.sensorsReadAccelerometer().result
s5 = droid.sensorsReadMagnetometer().result
s6 = droid.sensorsReadOrientation().result
droid.stopSensing()

print s3
Exemple #5
0
from timeit import Timer
from random import randrange
from androidhelper import Android

droid = Android()
droid.dialogCreateAlert('H4 start', 'press Yes to start H4, press No to exit')
droid.dialogSetPositiveButtonText('Yes')
droid.dialogSetNegativeButtonText('No')
droid.dialogShow()
if droid.dialogGetResponse().result['which'] == 'positive':
    #打开储存结果文件
    ftxt = open('/storage/emulated/0/qpython/result.txt', 'w')

    print('process H4.1')
    #H4.1 测量不同大小的list索引取值用时
    ftxt.write('H4.1 list index time\nlen(list)  time\n')
    droid.dialogCreateHorizontalProgress('H4.1 progress',
                                         'H4.1 is now testing', 30)
    droid.dialogShow()
    for nlen in range(10**5, 3 * 10**6 + 1, 10**5):
        lst = list(range(nlen))
        tmr = Timer('lst[10000]', 'from __main__ import lst')
        t = tmr.timeit(number=5 * 10**6)
        ftxt.write('%d %.5f\n' % (nlen, t))
        droid.dialogSetCurrentProgress(nlen // 10**5)
    droid.dialogDismiss()
    droid.makeToast('H4.1 finish!')

    print('process H4.2')
    #H4.2 测量不同大小dict的取值&改值用时
    ftxt.write('\nH4.2 time of dict index and set value\n')
Exemple #6
0
 def load_last_buffer():
     from androidhelper import Android
     return Android().getClipboard().result
Exemple #7
0
import socket
from androidhelper import Android
andro = Android()
conn = socket.socket(socket.AF_INET, socket.SOCK_DGRAM)


def xor(string, key):
    new = ""
    i = 1
    for char in string:
        new += chr(ord(char) + ord(key[i % len(key)]))
        i += 1
    return new


CHARSET = [
    'a', 'b', 'v', 'g', 'd', 'e', 'z', 'i', 'j', 'k', 'l', 'm', 'n', 'o', 'p',
    'r', 's', 't', 'u', 'f', 'h', 'c', 'q', 'w', 'y', 'x', '1', '2', '3', '4',
    '5', '6', '7', '8', '9', '0'
]


def getCharById(charId):
    return CHARSET[charId]


def getIdByChar(char):
    i = 1
    for ch in CHARSET:
        if (char.lower() == ch.lower()): return i
        i += 1
Exemple #8
0
# Qpython 3, Android
# 复习单词:基本原理 spaced repetition 根据你对单词的熟悉程度调整下次复习时间
# 可以手动向数据文件添加新词,添加时可只写word,不记录时间

from androidhelper import Android  # Qpython提供SL4A服务

droid = Android()

from random import shuffle
from urllib.request import urlopen
import datetime
import re
import math

import os

os.system('clear')  # 清屏

path = r'/sdcard/啊学习资料/复习单词.txt'  # 数据文件位置
mp3_path = r'/sdcard/qpython/word mp3/'  # mp3存放路径

droid.setMediaVolume(6)  #设置媒体音量


def read_file(path):
    with open(path, 'r', encoding='utf-8') as f:
        lines = f.readlines()

        # if len(lines) % 40 != 0:
        # os.system("sed -i '$d' {}".format(path))
        # print('已删除最后一个未学过的单词')
Exemple #9
0
from androidhelper import Android
import time
import os
import datetime
import math


def getDistance(dlat, dlon):
    unit = math.pi * 6371000 / 180
    y = dlat * unit
    x = dlon * unit * math.sin(dlat)
    return math.hypot(x, y)


drd = Android()

drd.wakeLockAcquirePartial()
drd.startLocating(100, 2)

os.system("clear")
print("Waiting for location data ...")
while 1:
    res = drd.readLocation().result
    if res:
        break
    time.sleep(0.1)

old = None
distance = 0
oldpos = None
start = None
Exemple #10
0
class MidiPlayer():
    NOTE_DURATION = 1
    CLIENT_NAME = "ppt"
    PORT_NAME = "Output"
    PRENAME = "/storage/emulated/0/qpython/projects3/ppt/ogg"
    POSTNAME = ".ogg"

    def __init__(self):
        self.midiout_notes = Android()
        for i in range(21, 108 + 1):
            self.midiout_notes.mediaPlay(self.PRENAME + str(i) + self.POSTNAME,
                                         str(i), False)

    def noteOn(self, note):
        # print("noteOn", note)
        self.midiout_notes.mediaPlayStart(str(note))

    def noteOff(self, note):
        # print("noteOff", note)
        self.midiout_notes.mediaPlayPause(str(note))
        self.midiout_notes.mediaPlaySeek(0, str(note))

    def playSingleNote(self, note):
        # print("playSingleNote", note)
        self.noteOn(note)
        Timer(self.NOTE_DURATION, self.noteOff, [note]).start()

    def playMultipleNotesMelodicly(self, originalNotes):
        # print("playMultipleNotesMelodicly", notes)
        notes = list(originalNotes)
        note = notes.pop(0)
        self.noteOn(note)
        Timer(self.NOTE_DURATION, self.noteOff, [note]).start()
        if len(notes) > 0:
            Timer(self.NOTE_DURATION, self.playMultipleNotesMelodicly,
                  [notes]).start()

    def playMultipleNotesHarmonicly(self, notes):
        # print("playMultipleNotesHarmonicly", notes)
        for note in notes:
            self.noteOn(note)
            Timer(self.NOTE_DURATION, self.noteOff, [note]).start()

    def allNotesOff(self):
        for i in self.midiout_notes.mediaPlayList():
            self.midiout_notes.mediaPlayClose(i)
from androidhelper import Android
import time

droid = Android()
startTime = time.time()
duration = 1000 * 60 * 2  #milliseconds ie 2 minutes
path = "/storage/9016-4EF8/Music/O children.mp3"
droid.mediaPlay(path)
droid.mediaPlayStart()
droid.eventWait(duration)
droid.mediaPlayClose()
Exemple #12
0
 def __init__(self):
     self.midiout_notes = Android()
     for i in range(21, 108 + 1):
         self.midiout_notes.mediaPlay(self.PRENAME + str(i) + self.POSTNAME,
                                      str(i), False)
Exemple #13
0
"""
1. 手机已经打开GPS
2. 在安卓手机上安装QPython3
3. 使用编辑器编写下面的代码。
"""

from time import sleep
from androidhelper import Android

# 创建一个实例对象
d = Android()
# 开始读取数据
d.startLocating()

while True:
    data = d.getLastKnownLocation()
    data = data.result

    if data:
        print(data['gps'])
    else:
        print('no gps')

    sleep(5)

# 停止读取数据
d.stopLocating()
Exemple #14
0
def sms():
    droid = Android()
    s=droid.smsSend("15919147090","测试")
Exemple #15
0
from androidhelper import Android
import time

droid = Android()
droid.batteryStartMonitoring()
time.sleep(1)

batStat = droid.batteryGetStatus().result

while batStat != 2:
    batStat = droid.batteryGetStatus().result

hour = time.localtime(time.time()).tm_hour
min = time.localtime(time.time()).tm_min
f = open("powerLog.txt", "a+")
f.write("Time: " + str(hour) + ": " + str(min) + "\n")
print "Time: ", hour, ": ", min

droid.batteryStopMonitoring()
Exemple #16
0
 def __init__(self):
     self.regex = re.compile('证码为.*【(\d+)】')  # regex
     self.start_time = datetime.datetime.now()
     # Android QPython3
     self.droid = Android()
     logging.debug("QPython3 实例初始化完成")
DESTURL = '192.168.1.101:8080'

def send_file_via_put_http(source_file, dest_file=DESTNAME, url=DESTURL):
	h =  httplib.HTTPConnection(url)
	f = open(source_file, 'rb')
	source_bin_content = f.read()
	f.close()
	h.request(method='PUT', 
		  url=dest_file, 
		  body=base64.b64encode(source_bin_content), 
		  headers={"Content-type": "application/x-www-form-urlencoded", "Accept": "text/plain" } )
	return h.getresponse().read()

from androidhelper import Android

droid=Android()
def confirmDialog(title, text, positive, negative=None):
    droid.dialogDismiss()
    droid.dialogCreateAlert(title,text)
    droid.dialogSetPositiveButtonText(positive)
    if negative is not None: droid.dialogSetNegativeButtonText(negative)
    droid.dialogShow()
	# blocked until press
    response=droid.dialogGetResponse().result
    droid.dialogDismiss()
    return "positive" == (response["which"] if response.has_key("which") else "canceled" )


from jnius import autoclass
MediaRecorder= autoclass('android.media.MediaRecorder')
AudioSource  = autoclass('android.media.MediaRecorder$AudioSource')
# qpython3 (Android)
# it connects CyberLepki with ZXing barcode scanner on Android device

from androidhelper import Android
import time
import socket
import sys
droid = Android()
HOST = '192.168.43.66'
PORT = 7008
stare = "kondominium"
droid.setClipboard("kondominium")
while True:
    time.sleep(0.2)
    schowek = droid.getClipboard().result
    if stare != schowek:
        stare = schowek
        paczka = stare.encode()
        s = socket.socket(socket.AF_INET, socket.SOCK_STREAM)
        s.connect((HOST, PORT))
        s.sendall(paczka)
        s.close()
        stare = "kondominium"
        droid.setClipboard("kondominium")
        if schowek[0:3] != "590":
            droid.ttsSpeak("powtórz")
Exemple #19
0
#-*-coding:utf8;-*-
#qpy:3
#qpy:console
from androidhelper import Android

droid = Android()
amountInDollars = 32
amountInNaira = 1
title = str(amountInDollars)
message = str(amountInNaira)
droid.dialogCreateAlert(title, message)
Exemple #20
0
 def __init__(self):
     # It can break the command and control server if the import is not here
     from androidhelper import Android
     self.droid = Android()
Exemple #21
0
    1: "unknown",
    2: "good",
    3: "overheat",
    4: "dead",
    5: "over voltage",
    6: "unspecified failure"
}

plug = {
    -1: "unknown",
    0: "unplugged",
    1: "AC power source",
    2: "USB power source",
}

droid = Android()
droid.batteryStartMonitoring()
time.sleep(1)


def printStatus():
    batStat = droid.batteryGetStatus().result
    print "Status: " + status[batStat]


def printLevel():
    batLevel = droid.batteryGetLevel().result
    print "Battery level: " + str(batLevel) + "%"


def printTemperature():
Exemple #22
0
from androidhelper import Android
import time

andro = Android()

class Chat():
    def __init__(self):
        self.name = andro.bluetoothGetLocalName()
        andro.bluetoothMakeDiscoverable()
        if(andro.bluetoothGetScanMode().result == -1): exit()
        """andro.dialogCreateAlert("Connect or accept?")
        andro.dialogSetPositiveButtonText("Connect")
        andro.dialogSetNegativeButtonText("Accept")
        andro.dialogShow()
        ca = andro.dialogGetResponse().result
        if(ca.has_key("which")): ca = ca["which"]
        else: exit()
        uuid = andro.dialogGetInput("UUID","Enter the UUID of the second person (default used if none)").result
        if(uuid == None): uuid = "457807c0-4897-11df-9879-0800200c9a66"
        if(ca == "negative"): result = self.accept(uuid)
        else: result = self.connect(uuid)"""
        uuid = "457807c0-4897-11df-9879-0800200c9a66"
        self.accept(uuid)
        if(result.error != None):
            self.error(result.error, uuid)
    
    def accept(self, uuid):
        try:
            timeout = int(andro.dialogGetInput("Timeout","How much time do you want to listen for connection?").result)*1000
        except ValueError:
            timeout = 10000
Exemple #23
0
    # Check if the autolock.ini file exists, if it doesn't create it.
    # if not (os.path.exists("./autolock.ini")):
    #     autolocker.create_ini()

    # Open the config file and read the settings
    # config = configparser.ConfigParser()
    # config.read("./autolock.ini")

    # # Start the autosearch scheduler
    # if(functions.TZ in [None,""]):
    #     scheduler = BackgroundScheduler(timezone='UTC')
    # else:
    #     scheduler = BackgroundScheduler(timezone=functions.TZ)
    # # Start the price search thread and run it every 30 minutes
    # scheduler.add_job(autolocker.start_lockin, 'interval', seconds=1800)
    # scheduler.start()

    droid = Android()
    uri2open = 'http://0.0.0.0:5000'
    intent2start = droid.makeIntent("android.intent.action.VIEW", uri2open,
                                    "text/html", None,
                                    [u"android.intent.category.BROWSABLE"],
                                    None, None, None)
    print(droid.startActivityForResultIntent(intent2start.result))

    app.secret_key = os.urandom(12)
    app.run(host='0.0.0.0')

    # Uncomment to enable HTTPS/SSL and comment out the line above
    #app.run(host='0.0.0.0',port=443,ssl_context=context)
Exemple #24
0
while True:
    op = input("Texto para binario ou binário para texto?(1/2) ")
    if op in ["1", "2"]:
        break

while True:
    opd = input("Quer colar?(s/n) ")
    if opd in ["s", "n"]:
        break

copied = opd == "s"

if op == "1":
    if copied:
        texto = Android().getClipboard().result.strip()
        print("Você colou:", texto)
    else:
        texto = input("Digite o texto que vai ser convertido: ").strip()
    saida = []
    for char in texto:
        saida.append(text_bin(char))
    v = " ".join(saida)
else:
    if copied:
        codigo = Android().getClipboard().result.strip()
        print("Você colou:", codigo)
    else:
        codigo = input("Diga o código binário: ").strip()
    codigo = "".join([i for i in codigo if i in ["0", "1"]])
    assert len(
from androidhelper import Android

droid = Android()
path = "/sdcard/qpython/photos/test.jpg"
droid.cameraCapturePicture(path)
#droid.cameraInteractiveCapturePicture(path)
Exemple #26
0
class QPython3(object):
    # 初始化
    def __init__(self):
        self.regex = re.compile('证码为.*【(\d+)】') # regex
        self.start_time = datetime.datetime.now()
        # Android QPython3
        self.droid = Android()
        logging.debug("QPython3 实例初始化完成")
    # 读取验证码短信
    def _get_sms_verify_code(self):
        # init
        self.start_time = datetime.datetime.now()
        code = '000000'
        retry = 600
        # loop
        logging.debug("监控短信中……")
        while retry > 0:
            retry -= 1
            # 检查 SMS
            code = self._check_sms_verify_code()
            # 有效验证码?
            if code != '000000':
                logging.debug("取得有效验证码……"+code)
                break
            else:
                logging.debug("未找到有效验证码……重试中, retry = {}".format(retry))
                time.sleep(0.05)
        else:
            logging.debug("未找到有效验证码……"+code)
        return code
    # 读取验证码短信
    def _check_sms_verify_code(self):
        # init
        code = '000000'
        # 获取当前的全部未读短信
        smsMessageIds = self.droid.smsGetMessageIds(True)
        # 无短信退出
        if len(smsMessageIds.result) == 0:
            logging.debug("无短信退出……")
            return code
        # loop
        for smsId in smsMessageIds.result:
            # get message
            smsMessage = self.droid.smsGetMessageById(smsId)
            # 时间筛选
            smsTimestamp = datetime.datetime.fromtimestamp(int(smsMessage.result['date'])/1e3)
            # 跳过开始时间点前 SMS
            if smsTimestamp < self.start_time:
                # print("时间跳过:", smsMessage)
                continue
            # 文字匹配
            smsContent = smsMessage.result['body']
            res = self.regex.search(smsContent)
            if res is None:
                # print("匹配跳过:", smsMessage)
                continue
            else:
                # print("发现短信:", smsMessage)
                code = res.group(1).strip()
                break
        return code
    # 获取验证码的外部调用
    def get_verify_code(self):
        logging.debug("获取验证码中……")
        # 读取验证码短信
        return self._get_sms_verify_code()
Exemple #27
-1
 def __init__(self):
     self.regex = re.compile('证码为.*【(\d+)】') # regex
     self.start_time = datetime.datetime.now()
     # Android QPython3
     self.droid = Android()
     logging.debug("QPython3 实例初始化完成")