Android Studio 修改 QPython 3C 的 SL4A 函數(shù) - 電話、網(wǎng)頁、系統(tǒng)等
QPython 原版的 SL4A 函數(shù),有的都是2009年的東西,早就淘汰了,對SL4A函數(shù)進行修復(fù)、升級、新增。
現(xiàn)有的 QPython 3C 支持 Python 3.11?。
以下函數(shù)需要打開電話權(quán)限:
getNetworkType()? (修復(fù))
獲取網(wǎng)絡(luò)類型:返回5G/4G/3G/2G/Other/Unknown。
getCellLocation() (升級)
返回當(dāng)前基站的 : LAC/CID/SID/NID/BID 和 NR/LTE/WCDMA 的信號dbm值,返回周邊基站信號個數(shù)。
getAllCellInfo()? (新增)
返回網(wǎng)絡(luò)小區(qū)信息。
getAllCellsLocation()? (新增)
返回所有基站小區(qū)位置信息 : LAC/CID/SID/NID/BID/MccMnc/Arcfn 和 信號dbm (NR/LTE/WCDMA/CDMA/GSM)。
getPhoneType()? (修復(fù))
返回電話類型:
移動聯(lián)通返回GSM,電信返回CDMA。
getMeid( slotIndex = None )? (新增)
獲取MEID號(卡槽號=空)
針對電信/全網(wǎng)通(CDMA)手機。
如果MEID無效返回None。
在Android7.1或以下可以返回舊版deviceId。
getImei(?slotIndex = None )? (新增)
獲取IMEI號(卡槽號=空)
針對移動/聯(lián)通/全網(wǎng)通(GSM)手機。
如果IMEI無效返回None。
在Android7.1或以下可以返回舊版deviceId。
以下函數(shù)需要 Android >= 9.0 并打開電話權(quán)限:
getTelephoneSignalStrengthDetail()??(新增)
返回信號強度具體信息。
類似RSRP, RSRQ, SNR。
getTelephoneSignalStrengthLevel()??(新增)
返回信號強度等級,
針對不同機型,有(0到5)或(0到4)。
以下函數(shù)需要定位權(quán)限:
startLocating(minUpdateTime=60000,minUpdateDistance=30,updateGnssStatus=False)? (升級)
開始定位(最小更新時間=60000毫秒,最小更新距離=30米,更新全球?qū)Ш叫l(wèi)星系統(tǒng)狀態(tài)=否)
其中更新全球?qū)Ш叫l(wèi)星系統(tǒng)狀態(tài)需要Android>=9,否則即使為True也沒用。
readLocation()? (原有)
讀取定位信息。
readGnssStatus()? (新增)
讀取全球?qū)Ш叫l(wèi)星系統(tǒng)狀態(tài),需要Android>=8,否則始終返回None。
共享變量函數(shù)(新增):
sharedVariableSet(key,value)
共享變量設(shè)置(鍵,值)
sharedVariableGet(key)
共享變量獲取(鍵)
如果鍵不存在,會報錯。
sharedVariableRemove(key)
共享變量刪除(鍵)
以上3個函數(shù)操作的共享變量(字符串類型),在QPython沒被關(guān)閉的情況下,支持跨腳本共享,但是隨著QPython的關(guān)閉,它們會被清空。
其他函數(shù):
viewHtml( path, title = None, wait = True )? (修復(fù)并升級)
查看本地 網(wǎng)頁/純文本/音視頻 頁面(路徑,標(biāo)題=空,等待=是)
其中title為標(biāo)題欄文本,title默認為None時,標(biāo)題欄顯示為應(yīng)用程序名稱,title為空字符串時,顯示為全屏網(wǎng)頁。
view( uri, type = None, extras = None, wait = True )? (升級)
查看(uri路徑,類型=空,附加=空,等待=是)
viewMap( query, wait = True )? (升級)
查看地圖(地點名稱,等待=是)
地點名稱例如:北京市。
viewContacts( wait = True )? (升級)
查看聯(lián)系人(等待=是)
notify(title, message, uri=None, arg=None) (升級)
顯示一個通知,當(dāng)用戶單擊它時關(guān)閉。
標(biāo)題(字符串)
消息(字符串)
Uri路徑(字符串可選)
腳本參數(shù)(字符串可選)
如果Uri不為空,當(dāng)用戶單擊通知后,將會進行以下操作:
1. Uri路徑是 Web Url,類似于 http:// 或?https:// --> 打開系統(tǒng)瀏覽器
2. Uri路徑?是 .py 腳本路徑?--> 運行?.py 腳本?(附帶腳本參數(shù))
launch( classname = None , packagename = None, wait = True )? (升級)
啟動(類名=空,包名=空,等待=是)
用對應(yīng)類名(和/或包名)啟動活動。
如果類名是?包名.下級0, 包名可省略,
如果類名是 包名.下級1.下級2.…, 包名?必須要寫,
如果類名和包名在文字上甚至沒有相關(guān)性,則包名必須要寫。
如果類名被省略,則包名必須要寫。
等待:至啟動應(yīng)用操作完成。
getLaunchablePackages(needClassName=False) (升級)
獲取可啟動包名、類名、應(yīng)用名
如果needClassName為False,返回值:{?"包名1":"應(yīng)用名1" , "包名2":"應(yīng)用名2" ,?…… }
如果needClassName為True,返回值:{ "包名1":"啟動類名1|應(yīng)用名1" , "包名2":"啟動類名2|應(yīng)用名2" ,?…… }
dialogSetProgressMessage(message) (新增)
設(shè)置進度條顯示的信息,需要先顯示進度條
executeQPy(scriptPath="",arg=None)? (升級)
執(zhí)行腳本(腳本=空白,參數(shù)=空)
wifiGetConnectionInfo() (升級)
獲取當(dāng)前連接的WiFi信息(網(wǎng)絡(luò)名,IP地址,信號強度,網(wǎng)絡(luò)速率,頻率,是否隱藏,BSSID,請求狀態(tài))
getLastLog(logFileName="last.log") (升級)
獲取Log文件內(nèi)容(log文件名="last.log")
createScriptShortCut(scriptPath,label=None,iconPath=None,scriptArg=None)
創(chuàng)建Python腳本快捷方式,需要創(chuàng)建快捷方式權(quán)限。
腳本路徑 (字符串)
標(biāo)簽 (字符串可選) 要顯示在快捷方式上的文字
圖標(biāo)路徑 (字符串可選) 圖片路徑,作為快捷方式圖標(biāo)
腳本參數(shù) (字符串可選)
返回None
getLocale() (新增)
獲取系統(tǒng)語言和國家/地區(qū)
getSysInfo() (新增)
獲取系統(tǒng)信息
getScreenInfo() (新增)
獲取屏幕信息
wifiGetApState() (新增)
判斷Wifi熱點狀態(tài)
getConnectedInfo() (新增)
獲取網(wǎng)絡(luò)連接信息
getMemoryInfo() (新增)
獲取內(nèi)存信息
getDhcpInfo(ipConvertToString=True) (新增)
獲取當(dāng)前動態(tài)IP網(wǎng)絡(luò)連接參數(shù)
如果ipConvertToString為True,返回類似"192.168.0.1"這樣的IP地址,
如果ipConvertToString為False,返回類似16820416這樣的IP地址。
getInternetInterfaceAddress() (新增)
返回一個dict,里面包含:網(wǎng)絡(luò)接口名稱?和?網(wǎng)絡(luò)地址列表。
?
getInstalledPackages(flag?=?getInstalledPackages.APPS_USER) (新增)
返回由軟件包名組成的,已安裝應(yīng)用的列表。
標(biāo)示?(整數(shù)可選)?:
? getInstalledPackages.APPS_ALL?=?5? (所有應(yīng)用)
? getInstalledPackages.APPS_USER?=?4 (用戶應(yīng)用,默認)
? getInstalledPackages.APPS_SYSTEM?=?3 (系統(tǒng)應(yīng)用)
? getInstalledPackages.APPS_SYSTEM_UPDATED?=?2 (系統(tǒng)已更新應(yīng)用)
? getInstalledPackages.APPS_SYSTEM_NOT_UPDATED?=?1 (系統(tǒng)未更新應(yīng)用)
prefRemoveValue(key,filename=None) (新增)
移除SharedPreference的key值。
backgroundProtect(enabled=True) (新增)
QPython后臺保護(啟動=是)。
enabled=True:啟動隱藏懸浮窗,防止QPython后臺運行時被意外關(guān)閉;
enabled=False:關(guān)閉隱藏懸浮窗,允許QPython后臺運行時被意外關(guān)閉;
需要Android>=8.0。
getHarmonyOsInformation() (新增)
獲取鴻蒙系統(tǒng)信息,返回一個字典,包括isHarmonyOs和HarmonyVersion(如果isHarmonyOs是真)
?
isExternalStorageManager()?(新增)
如果 Android <= 10,返回 None?,
如果 Android >= 11,返回 QPython 3C 是否為 外置存儲管理器 (True or False) 。
sensorsGetStepCounter() (新增)
傳感器獲取步數(shù)。
startSensingThreshold()和startSensingTimed()? (升級)
兩個傳感器函數(shù)新增步數(shù)選項。
elapsedRealtimeNanos() (新增)
獲取系統(tǒng)開機納秒數(shù)。
batteryGetCurrent()??(新增)
獲取電流毫安數(shù)。
getTrafficStats(flags=7)? (新增)
獲取流量統(tǒng)計
flags 標(biāo)記 (整數(shù)可選) ALL(7,全部,默認) = TOTAL(總和,1) + MOBILE(移動數(shù)據(jù),2) + QPYTHON(4)
返回一個字典,包含發(fā)送/接收字節(jié)數(shù), 還有系統(tǒng)啟動時間。
getTrafficStats.TOTAL? ?= 1
getTrafficStats.MOBILE? = 2
getTrafficStats.QPYTHON = 4
QPython 3C (Python 3.11) 視頻演示:
https://www.bilibili.com/BV1NL411G7XX
如果需要 QPython 3C 源代碼/Apk,請點擊以下鏈接:
作者:乘著船@Bilibili
更多文章+下載鏈接:https://www.bilibili.com/read/readlist/rl321663