Вверх ↑
Ответов: 163
Рейтинг: 33
#1: 2019-03-11 00:14:31 ЛС | профиль | цитата
По первому вопросу все просто. Ниже код, потребуется элемент "Permission", найти его можно здесь. Если при вставке кода HiAsm будет ругаться на отсутствующие свойства у элементов, не обращайте внимания.

Make(android)
ver(4.04 build 185)
Add(MainActivity,2953706,126,175)
{
Left=0
Top=0
Width=500
Height=400
BorderStyle=3
AppName="test_dial"
Package="hiasm.test_dial"
VersionCode=1
Version="1.0"
Compatibility=6
Caption="test_dial"
AppIcon=[]
SysName=""
DefaultLayout="(empty)"
IntentFilter=#
Theme=0
CustomTheme=""
BackgroundImage="(empty)"
ProcName=""
}
Add(Intent,886680,385,119)
{
Uri=""
StandardAction=3
Action=""
ClassName=""
Categories=#
Flags=#
Permission=""
ActivityToFront=0
ActivityClearTask=0
ActivityClearTop=0
ActivityClearReset=0
ActivityExclRecents=0
ActivityForwardRes=0
ActivityLaunchHist=0
ActivityMultiTask=0
ActivityNewDoc=0
ActivityNewTask=0
ActivityNoAnim=0
ActivityNoHist=0
ActivityNoUserAct=0
ActivityPrevTop=0
ActivityResetTask=0
ActivitySingleTop=0
ActivityTaskOnHome=0
GrantReadUri=0
GrantWriteUri=0
GrantPersistUri=0
GrantPrefixUri=0
DebugLogResolution=0
FromBackground=0
IncludeStoppedPkg=0
ReceiverForeground=0
ReceiverNoAbort=0
ReceiverRegOnly=0
ReceiverReplPend=0
Point(doUri)
}
Add(Button,14070446,203,112)
{
Left=25
Top=65
Width=120
Height=22
Align=0
Color=-16777201
LayoutManager="(empty)"
Weight=0
OffsetX=0
OffsetY=0
UnitsX=0
UnitsY=0
gVertical=0
gHorizontal=0
gFill=0
HeightMode=0
WidthMode=1
FixedHeight="40px"
FixedWidth="100px"
MinHeight=""
MinWidth=""
mLeft=""
mTop=""
mRight=""
mBottom=""
pLeft=""
pTop=""
pRight=""
pBottom=""
Alpha=1
Visibility=0
Clickable=1
Focusable=1
Enabled=1
ContextMenu="(empty)"
BackgroundImage="(empty)"
Background=""
ViewStyle=""
Animation="(empty)"
TypeFace=0
TextColor=536870912
TextStyle=0
TextSize=""
TextScaleX=1
Caption="CALL"
StrResName=""
Point(onClick)
link(onClick,15510993:doEvent1,[])
}
Add(Permission,4981911,385,42)
{
PermName=28
CustomPermission=""
}
Add(EditText,2980867,301,49)
{
Left=15
Top=15
Width=160
Height=28
Align=0
Color=-16777201
LayoutManager="(empty)"
Weight=0
OffsetX=0
OffsetY=0
UnitsX=0
UnitsY=0
gVertical=0
gHorizontal=0
gFill=0
HeightMode=0
WidthMode=1
FixedHeight="40px"
FixedWidth="100px"
MinHeight=""
MinWidth=""
mLeft=""
mTop=""
mRight=""
mBottom=""
pLeft=""
pTop=""
pRight=""
pBottom=""
Alpha=1
Visibility=0
Clickable=1
Focusable=1
Enabled=1
ContextMenu="(empty)"
BackgroundImage="(empty)"
Background=""
ViewStyle=""
Animation="(empty)"
TypeFace=0
TextColor=536870912
TextStyle=0
TextSize=""
TextScaleX=1
HintColor=536870912
HighlightColor=536870912
LinkColor=536870912
WebLinks=0
EmailLinks=0
PhoneLinks=0
MapLinks=0
Capitalize=0
Numeric=0
Signed=0
PhoneNumber=0
Password=0
LinesCount=0
MinLines=0
MaxLines=0
SingleLine=0
Text=""
Hint="введите номер"
StrResName=""
}
Add(Hub,15510993,259,112)
{
InCount=1
OutCount=2
link(onEvent1,4320921:doStrCat,[])
link(onEvent2,886680:doStartActivity,[])
}
Add(StrCat,4320921,294,112)
{
Str1="tel:"
Str2=""
link(onStrCat,886680:doUri,[(356,118)(356,153)])
link(Str2,2980867:Value,[])
}

По второму вопросу все гораздо сложнее. Официально возможность определения факта снятия трубки на том конце появилась приблизительно в 6-м Андроиде, но я так и не смог заставить ее работать. Однако с давних пор для этого все пользуются таким костылем: после начала вызова через AccessibilityService либо NotificationListenerService отлавливается появление строки таймера разговора в окне звонилки либо в уведомлениях соответственно. Код привести не могу, так как его будет много и он будет зависеть от конкретного проекта.
карма: 3

1
Голосовали:Konst