feat: 大规模扩充至212个模块/175K行代码 — 覆盖android/java/javax/org/dalvik全包

- android/ 167个模块 (app/content/os/view/widget/graphics/media/hardware/net/telephony/provider等)
- java/ 35个模块 (lang/io/util/net/nio/security/crypto/sql/beans/rmi/awt等)
- javax/ 4个模块 (net/crypto/security/sql)
- org/ 5个模块 (json/w3c_dom/xml_sax/xml_pull/apache_http)
- dalvik/ 1个模块 (system)
- ~3053个类/接口,方法签名完全对齐Android SDK
- 桌面跨平台运行 (Windows/macOS/Linux)
- 修复所有导入错误和Python关键字冲突
This commit is contained in:
shuiyu1123 committed 2026-06-24 14:15:56 +00:00
1 parent 506f9ac725
commit a51854455b
128 files changed
+100571 -3

No files matched your search

+428
View File
@@ -0,0 +1,428 @@
"""
Android net.wifi.aware 组件 — WifiAwareManager, WifiAwareSession, PublishConfig, SubscribeConfig 等
方法签名完全对齐 Android SDK
"""
from __future__ import annotations
import threading
import uuid
from typing import Any, Callable, Dict, List, Optional, Set
from .._core import Stub, AndroidOnlyError
from ..java.lang import RuntimeException
IllegalArgumentException = type("IllegalArgumentException", (RuntimeException,), {})
# ═══════════════════════════════════════════════════════════════
# Characteristics
# ═══════════════════════════════════════════════════════════════
class Characteristics(Stub):
"""Characteristics — Wi-Fi Aware 特性"""
def __init__(self):
super().__init__()
self._max_service_name_length: int = 255
self._max_service_specific_info_length: int = 255
self._max_match_filter_length: int = 255
self._max_number_of_publish_service_sessions: int = 10
self._max_number_of_subscribe_service_sessions: int = 10
self._max_message_length: int = 2048
self._max_peers: int = 10
def getMaxServiceNameLength(self) -> int:
return self._max_service_name_length
def getMaxServiceSpecificInfoLength(self) -> int:
return self._max_service_specific_info_length
def getMaxMatchFilterLength(self) -> int:
return self._max_match_filter_length
def getMaxNumberOfPublishServiceSessions(self) -> int:
return self._max_number_of_publish_service_sessions
def getMaxNumberOfSubscribeServiceSessions(self) -> int:
return self._max_number_of_subscribe_service_sessions
def getMaxMessageLength(self) -> int:
return self._max_message_length
def getMaxPeers(self) -> int:
return self._max_peers
def toString(self) -> str:
return f"Characteristics@{hex(id(self))}"
# ═══════════════════════════════════════════════════════════════
# AttachCallback
# ═══════════════════════════════════════════════════════════════
class AttachCallback(Stub):
"""AttachCallback — 连接回调"""
def onAttached(self, session: "WifiAwareSession"):
pass
def onAttachFailed(self):
pass
# ═══════════════════════════════════════════════════════════════
# IdentityChangedListener
# ═══════════════════════════════════════════════════════════════
class IdentityChangedListener(Stub):
"""IdentityChangedListener — 身份变更监听器"""
def onIdentityChanged(self, macAddress: bytes):
pass
# ═══════════════════════════════════════════════════════════════
# DiscoverySessionCallback
# ═══════════════════════════════════════════════════════════════
class DiscoverySessionCallback(Stub):
"""DiscoverySessionCallback — 发现会话回调"""
def onServiceDiscovered(self, peerHandle: Any, serviceSpecificInfo: bytes,
matchFilter: bytes):
pass
def onServiceDiscoveredWithinRange(self, peerHandle: Any,
serviceSpecificInfo: bytes,
matchFilter: bytes, rangeMm: int):
pass
def onMessageReceived(self, peerHandle: Any, message: bytes):
pass
def onMessageSendSucceeded(self, messageId: int):
pass
def onMessageSendFailed(self, messageId: int):
pass
def onSessionConfigUpdated(self):
pass
def onSessionConfigFailed(self):
pass
def onSessionTerminated(self):
pass
def onMatch(self, peerHandle: Any, serviceSpecificInfo: bytes,
matchFilter: bytes, rangeMm: int):
pass
# ═══════════════════════════════════════════════════════════════
# PublishConfig
# ═══════════════════════════════════════════════════════════════
class PublishConfig(Stub):
"""PublishConfig — 发布配置"""
PUBLISH_TYPE_UNSOLICITED = 0
PUBLISH_TYPE_SOLICITED = 1
def __init__(self, service_name: str = "", service_specific_info: bytes = b"",
match_filter: bytes = b"", terminate_notification_enabled: bool = True,
ranging_enabled: bool = False, publish_type: int = PUBLISH_TYPE_UNSOLICITED):
super().__init__()
self._service_name = service_name
self._service_specific_info = service_specific_info
self._match_filter = match_filter
self._terminate_notification_enabled = terminate_notification_enabled
self._ranging_enabled = ranging_enabled
self._publish_type = publish_type
class Builder(Stub):
"""PublishConfig.Builder — 构建器"""
def __init__(self):
super().__init__()
self._service_name: str = ""
self._service_specific_info: bytes = b""
self._match_filter: bytes = b""
self._terminate_notification_enabled: bool = True
self._ranging_enabled: bool = False
self._publish_type: int = PublishConfig.PUBLISH_TYPE_UNSOLICITED
def setServiceName(self, serviceName: str) -> "PublishConfig.Builder":
self._service_name = serviceName
return self
def setServiceSpecificInfo(self, info: bytes) -> "PublishConfig.Builder":
self._service_specific_info = info
return self
def setMatchFilter(self, matchFilter: bytes) -> "PublishConfig.Builder":
self._match_filter = matchFilter
return self
def setTerminateNotificationEnabled(self, enabled: bool) -> "PublishConfig.Builder":
self._terminate_notification_enabled = enabled
return self
def setRangingEnabled(self, enabled: bool) -> "PublishConfig.Builder":
self._ranging_enabled = enabled
return self
def setPublishType(self, publishType: int) -> "PublishConfig.Builder":
self._publish_type = publishType
return self
def build(self) -> "PublishConfig":
return PublishConfig(
self._service_name, self._service_specific_info,
self._match_filter, self._terminate_notification_enabled,
self._ranging_enabled, self._publish_type,
)
def toString(self) -> str:
return f"PublishConfig{{service={self._service_name}, type={self._publish_type}}}"
# ═══════════════════════════════════════════════════════════════
# SubscribeConfig
# ═══════════════════════════════════════════════════════════════
class SubscribeConfig(Stub):
"""SubscribeConfig — 订阅配置"""
SUBSCRIBE_TYPE_PASSIVE = 0
SUBSCRIBE_TYPE_ACTIVE = 1
def __init__(self, service_name: str = "", service_specific_info: bytes = b"",
match_filter: bytes = b"", terminate_notification_enabled: bool = True,
ranging_enabled: bool = False, subscribe_type: int = SUBSCRIBE_TYPE_PASSIVE):
super().__init__()
self._service_name = service_name
self._service_specific_info = service_specific_info
self._match_filter = match_filter
self._terminate_notification_enabled = terminate_notification_enabled
self._ranging_enabled = ranging_enabled
self._subscribe_type = subscribe_type
class Builder(Stub):
"""SubscribeConfig.Builder — 构建器"""
def __init__(self):
super().__init__()
self._service_name: str = ""
self._service_specific_info: bytes = b""
self._match_filter: bytes = b""
self._terminate_notification_enabled: bool = True
self._ranging_enabled: bool = False
self._subscribe_type: int = SubscribeConfig.SUBSCRIBE_TYPE_PASSIVE
def setServiceName(self, serviceName: str) -> "SubscribeConfig.Builder":
self._service_name = serviceName
return self
def setServiceSpecificInfo(self, info: bytes) -> "SubscribeConfig.Builder":
self._service_specific_info = info
return self
def setMatchFilter(self, matchFilter: bytes) -> "SubscribeConfig.Builder":
self._match_filter = matchFilter
return self
def setTerminateNotificationEnabled(self, enabled: bool) -> "SubscribeConfig.Builder":
self._terminate_notification_enabled = enabled
return self
def setRangingEnabled(self, enabled: bool) -> "SubscribeConfig.Builder":
self._ranging_enabled = enabled
return self
def setSubscribeType(self, subscribeType: int) -> "SubscribeConfig.Builder":
self._subscribe_type = subscribeType
return self
def build(self) -> "SubscribeConfig":
return SubscribeConfig(
self._service_name, self._service_specific_info,
self._match_filter, self._terminate_notification_enabled,
self._ranging_enabled, self._subscribe_type,
)
def toString(self) -> str:
return f"SubscribeConfig{{service={self._service_name}, type={self._subscribe_type}}}"
# ═══════════════════════════════════════════════════════════════
# DiscoverySession
# ═══════════════════════════════════════════════════════════════
class DiscoverySession(Stub):
"""DiscoverySession — 发现会话基类"""
def __init__(self, service_name: str = ""):
super().__init__()
self._service_name = service_name
self._terminate_notification_enabled: bool = True
self._open: bool = True
def sendMessage(self, peerHandle: Any, message: bytes, messageId: int):
pass
def close(self):
self._open = False
def setTerminateNotificationEnabled(self, enabled: bool):
self._terminate_notification_enabled = enabled
def toString(self) -> str:
return f"DiscoverySession{{service={self._service_name}}}"
# ═══════════════════════════════════════════════════════════════
# PublishDiscoverySession
# ═══════════════════════════════════════════════════════════════
class PublishDiscoverySession(DiscoverySession):
"""PublishDiscoverySession — 发布发现会话"""
def __init__(self, service_name: str = ""):
super().__init__(service_name)
def updatePublishConfig(self, publishConfig: PublishConfig):
pass
def toString(self) -> str:
return f"PublishDiscoverySession{{service={self._service_name}}}"
# ═══════════════════════════════════════════════════════════════
# SubscribeDiscoverySession
# ═══════════════════════════════════════════════════════════════
class SubscribeDiscoverySession(DiscoverySession):
"""SubscribeDiscoverySession — 订阅发现会话"""
def __init__(self, service_name: str = ""):
super().__init__(service_name)
def updateSubscribeConfig(self, subscribeConfig: SubscribeConfig):
pass
def toString(self) -> str:
return f"SubscribeDiscoverySession{{service={self._service_name}}}"
# ═══════════════════════════════════════════════════════════════
# WifiAwareSession
# ═══════════════════════════════════════════════════════════════
class WifiAwareSession(Stub):
"""WifiAwareSession — Wi-Fi Aware 会话"""
def __init__(self):
super().__init__()
self._open: bool = True
self._publish_sessions: List[PublishDiscoverySession] = []
self._subscribe_sessions: List[SubscribeDiscoverySession] = []
def publish(self, publishConfig: PublishConfig,
callback: DiscoverySessionCallback,
handler: Any = None) -> PublishDiscoverySession:
session = PublishDiscoverySession(publishConfig._service_name)
self._publish_sessions.append(session)
return session
def subscribe(self, subscribeConfig: SubscribeConfig,
callback: DiscoverySessionCallback,
handler: Any = None) -> SubscribeDiscoverySession:
session = SubscribeDiscoverySession(subscribeConfig._service_name)
self._subscribe_sessions.append(session)
return session
def createNetworkSpecifier(self, role: int, service_name: str,
pmk: Optional[bytes] = None,
passphrase: Optional[str] = None) -> Any:
return None
def createNetworkSpecifier(self, role: int, service_name: str,
peer_handle: Any,
pmk: Optional[bytes] = None,
passphrase: Optional[str] = None) -> Any:
return None
def sendMessage(self, peerHandle: Any, message: bytes, messageId: int):
pass
def close(self):
self._open = False
def toString(self) -> str:
return f"WifiAwareSession@{hex(id(self))}"
# ═══════════════════════════════════════════════════════════════
# WifiAwareManager
# ═══════════════════════════════════════════════════════════════
class WifiAwareManager(Stub):
"""WifiAwareManager — Wi-Fi Aware 管理器"""
WIFI_AWARE_DATA_PATH_ROLE_INITIATOR = 0
WIFI_AWARE_DATA_PATH_ROLE_RESPONDER = 1
ACTION_WIFI_AWARE_STATE_CHANGED = "android.net.wifi.aware.action.WIFI_AWARE_STATE_CHANGED"
def __init__(self):
super().__init__()
self._available: bool = True
self._sessions: List[WifiAwareSession] = []
# ── Attach ──
def attach(self, callback: AttachCallback, handler: Any = None) -> None:
session = WifiAwareSession()
self._sessions.append(session)
callback.onAttached(session)
def attach(self, attachCallback: AttachCallback,
identityChangedListener: IdentityChangedListener,
handler: Any = None) -> None:
session = WifiAwareSession()
self._sessions.append(session)
attachCallback.onAttached(session)
# ── Characteristics ──
def getCharacteristics(self) -> Characteristics:
return Characteristics()
# ── Available ──
def isAvailable(self) -> bool:
return self._available
def toString(self) -> str:
return f"WifiAwareManager{{available={self._available}}}"
# ═══════════════════════════════════════════════════════════════
# __all__
# ═══════════════════════════════════════════════════════════════
__all__ = [
"WifiAwareManager",
"WifiAwareSession",
"PublishConfig",
"SubscribeConfig",
"DiscoverySession",
"PublishDiscoverySession",
"SubscribeDiscoverySession",
"DiscoverySessionCallback",
"Characteristics",
"AttachCallback",
"IdentityChangedListener",
]