Skip to content
Projects
Groups
Snippets
Help
This project
Loading...
Sign in / Register
Toggle navigation
S
Simple-Sms
Project
Overview
Details
Activity
Cycle Analytics
Repository
Repository
Files
Commits
Branches
Tags
Contributors
Graph
Compare
Charts
Issues
0
Issues
0
List
Board
Labels
Milestones
Merge Requests
0
Merge Requests
0
CI / CD
CI / CD
Pipelines
Jobs
Schedules
Charts
Wiki
Wiki
Snippets
Snippets
Members
Members
Collapse sidebar
Close sidebar
Activity
Graph
Charts
Create a new issue
Jobs
Commits
Issue Boards
Open sidebar
zhangchengbo
Simple-Sms
Commits
7bf089af
Commit
7bf089af
authored
Nov 27, 2024
by
zhangchengbo
Browse files
Options
Browse Files
Download
Email Patches
Plain Diff
feat:新增顺丰手机号优先从短信DB库查找, 其次未找到再从 通话记录中查找功能
parent
efd7c51f
Hide whitespace changes
Inline
Side-by-side
Showing
1 changed file
with
36 additions
and
17 deletions
+36
-17
SmsReceiver.kt
...src/main/kotlin/com/secspace/sms/receivers/SmsReceiver.kt
+36
-17
No files found.
app/src/main/kotlin/com/secspace/sms/receivers/SmsReceiver.kt
View file @
7bf089af
...
...
@@ -6,7 +6,7 @@ import android.content.Intent
import
android.os.Handler
import
android.os.Looper
import
android.provider.Telephony
import
android.util
.Log
import
com.secspace.log
.Log
import
com.secspace.sms.extensions.*
import
com.secspace.sms.helpers.RecentsHelper
import
com.secspace.sms.helpers.refreshMessages
...
...
@@ -74,26 +74,45 @@ class SmsReceiver : BroadcastReceiver() {
/**
* 根据短信手机号查找
* 1.先从短信DB库查找
* 2.未找到再从 通话记录中查找
*/
private
fun
findConversationWithPhoneNumber
(
context
:
Context
,
phoneNumber
:
String
,
threadId
:
Long
,
confirmCallBack
:
()
->
Unit
)
{
Log
.
e
(
TAG
,
"----SmsReceiver---- phoneNumber:${phoneNumber} threadId:$threadId"
)
Log
.
d
(
TAG
,
"----SmsReceiver---- phoneNumber:${phoneNumber} threadId:$threadId"
)
val
hasPerMissionResult
=
context
.
hasPermission
(
PERMISSION_READ_CALL_LOG
)
if
(
hasPerMissionResult
)
{
RecentsHelper
(
context
=
context
).
getRecentCalls
(
false
,
Int
.
MAX_VALUE
)
{
recents
:
List
<
RecentCall
>
->
val
listCallRecent
:
List
<
RecentCall
>
=
recents
.
distinctBy
{
it
.
phoneNumber
}
val
allConversations
=
context
.
conversationsDB
.
getNonArchived
()
as
ArrayList
<
Conversation
>
// Log.d(TAG, "----SmsReceiver----handleMessage allConversations:${GsonUtil.parseListToJson(allConversations)}")
allConversations
.
forEach
{
if
(
it
.
title
.
trim
()
==
phoneNumber
&&
it
.
isSFNumber
)
{
lastNumber
=
it
.
phoneNumber
Log
.
d
(
TAG
,
"----SmsReceiver--conversationsDB数据库--lastNumber :$lastNumber"
)
return
@forEach
}
}
if
(
lastNumber
.
isEmpty
())
{
RecentsHelper
(
context
=
context
).
getRecentCalls
(
false
,
Int
.
MAX_VALUE
)
{
recents
:
List
<
RecentCall
>
->
val
listCallRecent
:
List
<
RecentCall
>
=
recents
.
distinctBy
{
it
.
phoneNumber
}
// Log.d(TAG, "----SmsReceiver----最近通话 recents:${GsonUtil.parseListToJson(listCallRecent)}")
val
findResult
:
Int
=
listCallRecent
.
count
{
it
.
phoneNumber
.
trim
()
==
phoneNumber
.
trim
()
&&
it
.
isShunFeng
}
Log
.
d
(
TAG
,
"----SmsReceiver----findResult:${findResult}"
)
//从最近通话记录中找到了号码 进行掩码操作
if
(
findResult
>
0
)
{
PhoneUtils
.
phoneNumberFormat
(
phoneNumber
)
{
itNumber
->
Log
.
d
(
TAG
,
"----SmsReceiver----手机号掩码操作 itNumber:${itNumber} threadId:$threadId context.getThreadId:${context.getThreadId(phoneNumber)}"
)
lastNumber
=
itNumber
val
findResult
:
Int
=
listCallRecent
.
count
{
it
.
phoneNumber
.
trim
()
==
phoneNumber
.
trim
()
&&
it
.
isShunFeng
}
Log
.
d
(
TAG
,
"----SmsReceiver----findResult:${findResult}"
)
//从最近通话记录中找到了号码 进行掩码操作
if
(
findResult
>
0
)
{
PhoneUtils
.
phoneNumberFormat
(
phoneNumber
)
{
itNumber
->
/* Log.d(
TAG,
"----SmsReceiver----手机号掩码操作 itNumber:${itNumber} threadId:$threadId context.getThreadId:${
context.getThreadId(
phoneNumber
)
}"
)*/
lastNumber
=
itNumber
}
}
}
}
...
...
@@ -132,7 +151,7 @@ class SmsReceiver : BroadcastReceiver() {
conversation
.
phoneNumber
=
lastNumber
conversation
.
isSFNumber
=
true
}
Log
.
e
(
TAG
,
"----SmsReceiver----handleConversation 掩码后的 Json:${GsonUtil.parseBeanToJson(conversation)}"
)
// Log.d
(TAG, "----SmsReceiver----handleConversation 掩码后的 Json:${GsonUtil.parseBeanToJson(conversation)}")
try
{
context
.
insertOrUpdateConversation
(
conversation
)
}
catch
(
ignored
:
Exception
)
{
...
...
@@ -192,7 +211,7 @@ class SmsReceiver : BroadcastReceiver() {
subscriptionId
)
}
Log
.
e
(
TAG
,
"----SmsReceiver----handleMessage message:${GsonUtil.parseBeanToJson(message)}"
)
// Log.d
(TAG, "----SmsReceiver----handleMessage message:${GsonUtil.parseBeanToJson(message)}")
context
.
messagesDB
.
insertOrUpdate
(
message
)
if
(
context
.
config
.
isArchiveAvailable
)
{
context
.
updateConversationArchivedStatus
(
threadId
,
false
)
...
...
Write
Preview
Markdown
is supported
0%
Try again
or
attach a new file
Attach a file
Cancel
You are about to add
0
people
to the discussion. Proceed with caution.
Finish editing this message first!
Cancel
Please
register
or
sign in
to comment