Skip to content

Commit

Permalink
Merge pull request #68 from wzasd/feat/2.2.0
Browse files Browse the repository at this point in the history
feat: 修改wifi和applist的逻辑 优化socket代码
  • Loading branch information
ZhouYixun committed Sep 7, 2022
2 parents e4c3214 + 5456ba4 commit 589f7e9
Show file tree
Hide file tree
Showing 3 changed files with 7 additions and 54 deletions.
Original file line number Diff line number Diff line change
Expand Up @@ -26,6 +26,7 @@ import android.util.Log
import com.blankj.utilcode.util.GsonUtils
import com.blankj.utilcode.util.ImageUtils
import com.blankj.utilcode.util.LogUtils
import org.cloud.sonic.android.lib.socketmanager.tcp.service.TcpServer
import org.cloud.sonic.android.model.SonicAppInfo
import org.cloud.sonic.android.model.SonicSocketByte
import java.io.IOException
Expand Down Expand Up @@ -92,10 +93,9 @@ class SonicPluginAppList constructor(
}
}

fun getAllAppInfo():SonicSocketByte? {
fun getAllAppInfo(sonicTcpServer: TcpServer?) {
val packages: List<PackageInfo> =
context.packageManager.getInstalledPackages(PackageManager.GET_UNINSTALLED_PACKAGES)

for (i in packages.indices) {
val packageInfo = packages[i]
if (packageInfo.applicationInfo.flags and ApplicationInfo.FLAG_SYSTEM == 0) {
Expand All @@ -114,34 +114,12 @@ class SonicPluginAppList constructor(
)
try {
val dataString: String = GsonUtils.toJson(tmpInfo)
val dataBytes: ByteArray = dataString.toByteArray()
// 数据长度转成二进制,存入byte[32]
val lengthBytes = ByteArray(32)
val binStr = Integer.toBinaryString(dataBytes.size).trim { it <= ' ' }
val binArray = binStr.toCharArray()
var x = binArray.size - 1
var y = lengthBytes.size - 1
while (x >= 0) {
try {
lengthBytes[y] = (binArray[x].toString() + "").toByte()
} catch (e: Exception) {
LogUtils.e(
String.format(
"char transfer byte failed, char: %s",
binArray[x].toString() + ""
)
)
}
x--
y--
}
return SonicSocketByte(lengthBytes,dataString)
sonicTcpServer?.sendMsgToAll(dataString + "\n")
} catch (e: IOException) {
e.printStackTrace()
}
}
}
return null
}


Expand Down
Original file line number Diff line number Diff line change
Expand Up @@ -112,29 +112,7 @@ class SonicPluginWifiManager constructor(

try {
val dataString: String = GsonUtils.toJson(sendPacket)
val dataBytes: ByteArray = dataString.toByteArray()
// 数据长度转成二进制,存入byte[32]
val lengthBytes = ByteArray(32)
val binStr = Integer.toBinaryString(dataBytes.size).trim { it <= ' ' }
val binArray = binStr.toCharArray()
var x = binArray.size - 1
var y = lengthBytes.size - 1
while (x >= 0) {
try {
lengthBytes[y] = (binArray[x].toString() + "").toByte()
} catch (e: Exception) {
LogUtils.e(
String.format(
"char转byte失败,char为:【%s】",
binArray[x].toString() + ""
)
)
}
x--
y--
}
sonicTcpServer?.sendMsgToAll(lengthBytes)
sonicTcpServer?.sendMsgToAll(dataString)
sonicTcpServer?.sendMsgToAll(dataString + "\n")
} catch (e: IOException) {
e.printStackTrace()
}
Expand Down
Original file line number Diff line number Diff line change
Expand Up @@ -233,6 +233,7 @@ class SonicManagerServiceV2 : Service(), TcpServerListener {
isSocketStop = true
mSonicTcpServer?.let {
if(it.isListening()) {
it.removeTcpServerListener(this)
it.stopServer()
}
}
Expand All @@ -243,12 +244,7 @@ class SonicManagerServiceV2 : Service(), TcpServerListener {
private fun processReceiveMsg(msg: String) {
when (msg) {
ACTION_STOP -> closeSocket()
ACTION_GET_ALL_APP_INFO -> {
appListPlugin.getAllAppInfo()?.let {
mSonicTcpServer?.sendMsgToAll(it.targetLength)
mSonicTcpServer?.sendMsgToAll(it.targetByte)
}
}
ACTION_GET_ALL_APP_INFO -> appListPlugin.getAllAppInfo(mSonicTcpServer)
ACTION_GET_ALL_WIFI_INFO -> wifiManager.getAllWifiList(mSonicTcpServer)
else -> LogUtils.w("service action is $msg")
}
Expand All @@ -264,6 +260,7 @@ class SonicManagerServiceV2 : Service(), TcpServerListener {

override fun onAccept(server: TcpServer, tcpClient: TcpClient) {
LogUtils.d("收到客户端连接请求 ${tcpClient.getTargetInfo().ip}")
mHandler.removeMessages(LINK_SOCKET_TIMEOUT_MSG)
}

override fun onSent(server: TcpServer, tcpClient: TcpClient, tcpMsg: TcpMassage) {
Expand Down

0 comments on commit 589f7e9

Please sign in to comment.