'intent-filter
AddReceiverText(smcmm, <intent-filter>
<action android:name="android.hardware.usb.action.USB_DEVICE_ATTACHED"/>
<action android:name="android.hardware.usb.action.USB_DEVICE_DETACHED"/>
</intent-filter>)
Sub Process_Globals
'These global variables will be declared once when the application starts.
'These variables can be accessed from all modules.
End Sub
Sub Service_Create
Service.AutomaticForegroundMode = Service.AUTOMATIC_FOREGROUND_NEVER
End Sub
Sub Service_Start (StartingIntent As Intent)
If StartingIntent.Action="android.hardware.usb.action.USB_DEVICE_ATTACHED" Then
If Not(IsPaused(Starter)) And Not(IsPaused(Main)) Then
'Log("USB_DEVICE_ATTACHED:" & StartingIntent.ExtrasToString)
'...
End If
Else If StartingIntent.Action="android.hardware.usb.action.USB_DEVICE_DETACHED" Then
If Not(IsPaused(Starter)) Then
'Log("USB_DEVICE_DETACHED:" & StartingIntent.ExtrasToString)
'...
End If
End If
Service_Stop
End Sub
Sub Service_Destroy
End Sub
Public Sub Service_Stop
StopService(Me)
End Sub
Sub Class_Globals
Private broadcast As BroadCastReceiver
End Sub
'Initializes the object. You can add parameters to this method if needed.
Public Sub Initialize
broadcast.Initialize("broadcast")
broadcast.registerReceiver("android.hardware.usb.action.USB_DEVICE_ATTACHED")
broadcast.registerReceiver("android.hardware.usb.action.USB_DEVICE_DETACHED")
'Set priority to maximum value
broadcast.SetPriority(2147483647)
End Sub
Private Sub broadcast_OnReceive(Action As String, Extras As Object)
'Execute so that other...
Check the unfiltered logs. Do you see any error message after you attach the usb?
FATAL EXCEPTION: main
Process: fg.cronomillemiglia, PID: 32614
java.lang.RuntimeException: Unable to start receiver fg.cronomillemiglia.smcmm$smcmm_BR: android.app.ForegroundServiceStartNotAllowedException: startForegroundService() not allowed due to mAllowStartForeground false: service fg.cronomillemiglia/.smcmm
At the first test my OTG adapter was somehow defective.Check the unfiltered logs. Do you see any error message after you attach the usb?
APP_FirstTime-Start=11:11:56
** Activity (main) Resume **
notifyKeepScreenOnChanged: keepScreenOn=false
mIsDeviceDefault = false, mIsSamsungBasicInteraction = false, isMetaDataInActivity = false
[INFO] isPopOver=false, config=false
updateCaptionType >> DecorView@86a1842[], isFloating=true, isApplication=true, hasWindowControllerCallback=false, hasWindowDecorCaption=false
setCaptionType = 0, this = DecorView@86a1842[]
initGoToTop
initGoToTop
setView = com.android.internal.policy.DecorView@86a1842 TM=true
setSurface called with nullptr
dispatchDetachedFromWindow
Input channel destroyed: '1e52058', fd=155
Skipped 72 frames! The application may be doing too much work on its main thread.
ensureControlAlpha: for ITYPE_NAVIGATION_BAR on fg.cronomillemiglia/fg.cronomillemiglia.main
Relayout returned: old=(65,0,2408,1080) new=(65,0,2408,1080) req=(2343,1080)0 dur=4 res=0x1 s={true 4047400960} ch=false fn=3
onsize change changed
onsize change changed
ensureControlAlpha: for ITYPE_NAVIGATION_BAR on fg.cronomillemiglia/fg.cronomillemiglia.main
sendUserActionEvent() mView returned.
Davey! duration=1333ms; Flags=0, FrameTimelineVsyncId=2454278, IntendedVsync=84536151150526, Vsync=84537351150550, InputEventId=0, HandleInputStart=84537363001807, AnimationStart=84537363005807, PerformTraversalsStart=84537363683037, DrawStart=84537383818960, FrameDeadline=84536167817193, FrameInterval=84537362869114, FrameStartTime=16666667, SyncQueued=84537398690037, SyncStart=84537398876576, IssueDrawCommandsStart=84537432713191, SwapBuffers=84537478184807, FrameCompleted=84537484750960, DequeueBufferDuration=3048616, QueueBufferDuration=960385, GpuCompleted=84537484750960, SwapBuffersCompleted=84537481594422, DisplayPresentTime=2348912816720838657,
NativeAlloc concurrent copying GC freed 76422(3213KB) AllocSpace objects, 29(580KB) LOS objects, 49% free, 6674KB/13MB, paused 190us,63us total 141.548ms
*** Service (httputils2service) Create ***
setSurface called with nullptr
A resource failed to call close.
A resource failed to call close.
A resource failed to call close.
** Service (httputils2service) Start **
mIsDeviceDefault = false, mIsSamsungBasicInteraction = false, isMetaDataInActivity = false
[INFO] isPopOver=false, config=false
updateCaptionType >> DecorView@58e8346[], isFloating=true, isApplication=true, hasWindowControllerCallback=false, hasWindowDecorCaption=false
setCaptionType = 0, this = DecorView@58e8346[]
initGoToTop
initGoToTop
setView = com.android.internal.policy.DecorView@58e8346 TM=true
Skipped 56 frames! The application may be doing too much work on its main thread.
Davey! duration=1032ms; Flags=0, FrameTimelineVsyncId=2454377, IntendedVsync=84537489893651, Vsync=84538423227003, InputEventId=0, HandleInputStart=84538429356268, AnimationStart=84538429363960, PerformTraversalsStart=84538432829499, DrawStart=84538435448576, FrameDeadline=84537523226985, FrameInterval=84538429173422, FrameStartTime=16666667, SyncQueued=84538443199576, SyncStart=84538443658653, IssueDrawCommandsStart=84538445066422, SwapBuffers=84538519621499, FrameCompleted=84538522730653, DequeueBufferDuration=55077, QueueBufferDuration=1015308, GpuCompleted=84538522730653, SwapBuffersCompleted=84538522730653, DisplayPresentTime=-6879236683525979185,
[](id:3a8a00000001,api:0,p:-1,c:14986) connect: controlledByApp=false
[ViewRootImpl@644b51e[main]#1] constructor()
ensureControlAlpha: for ITYPE_NAVIGATION_BAR on fg.cronomillemiglia/fg.cronomillemiglia.main
Relayout returned: old=(0,0,2273,1080) new=(451,152,1886,928) req=(1435,776)0 dur=9 res=0x7 s={true 3260985344} ch=true fn=-1
[ViewRootImpl@644b51e[main]#1(BLAST Consumer)1](id:3a8a00000001,api:1,p:14986,c:14986) connect: api=1 producerControlledByApp=true
eglCreateWindowSurface
onsize change changed
onsize change changed
[DP] dp(1) 1 android.view.ViewRootImpl.reportNextDraw:11420 android.view.ViewRootImpl.performTraversals:4193 android.view.ViewRootImpl.doTraversal:2919
Creating frameDrawingCallback nextDrawUseBlastSync=false reportNextDraw=true hasBlurUpdates=false
Creating frameCompleteCallback
Received frameDrawingCallback frameNum=1. Creating transactionCompleteCallback=false
Received frameCompleteCallback lastAcquiredFrameNum=1 lastAttemptedDrawFrameNum=1
[DP] pdf(0) 1 android.view.ViewRootImpl.lambda$addFrameCompleteCallbackIfNeeded$3$ViewRootImpl:4995 android.view.ViewRootImpl$$ExternalSyntheticLambda16.run:6 android.os.Handler.handleCallback:938
[DP] rdf()
reportDrawFinished (fn: -1)
Davey! duration=1083ms; Flags=1, FrameTimelineVsyncId=2454377, IntendedVsync=84537489893651, Vsync=84538423227003, InputEventId=0, HandleInputStart=84538429356268, AnimationStart=84538429363960, PerformTraversalsStart=84538432829499, DrawStart=84538538544576, FrameDeadline=84537506560318, FrameInterval=84538429173422, FrameStartTime=16666667, SyncQueued=84538540713114, SyncStart=84538540969730, IssueDrawCommandsStart=84538541100191, SwapBuffers=84538567080268, FrameCompleted=84538573239884, DequeueBufferDuration=3466385, QueueBufferDuration=2316923, GpuCompleted=84538573239884, SwapBuffersCompleted=84538572512499, DisplayPresentTime=0,
mIsDeviceDefault = false, mIsSamsungBasicInteraction = false, isMetaDataInActivity = false
[INFO] isPopOver=false, config=false
updateCaptionType >> DecorView@9407acf[], isFloating=true, isApplication=true, hasWindowControllerCallback=false, hasWindowDecorCaption=false
setCaptionType = 0, this = DecorView@9407acf[]
initGoToTop
initGoToTop
setView = com.android.internal.policy.DecorView@9407acf TM=true
[](id:3a8a00000002,api:0,p:-1,c:14986) connect: controlledByApp=false
[ViewRootImpl@69be606[main]#2] constructor()
ensureControlAlpha: for ITYPE_NAVIGATION_BAR on fg.cronomillemiglia/fg.cronomillemiglia.main
Relayout returned: old=(0,0,2273,1080) new=(451,182,1886,897) req=(1435,715)0 dur=9 res=0x7 s={true 3260993536} ch=true fn=-1
[ViewRootImpl@69be606[main]#2(BLAST Consumer)2](id:3a8a00000002,api:1,p:14986,c:14986) connect: api=1 producerControlledByApp=true
eglCreateWindowSurface
onsize change changed
onsize change changed
[DP] dp(1) 1 android.view.ViewRootImpl.reportNextDraw:11420 android.view.ViewRootImpl.performTraversals:4193 android.view.ViewRootImpl.doTraversal:2919
Creating frameDrawingCallback nextDrawUseBlastSync=false reportNextDraw=true hasBlurUpdates=false
Creating frameCompleteCallback
Received frameDrawingCallback frameNum=1. Creating transactionCompleteCallback=false
Received frameCompleteCallback lastAcquiredFrameNum=1 lastAttemptedDrawFrameNum=1
[DP] pdf(0) 1 android.view.ViewRootImpl.lambda$addFrameCompleteCallbackIfNeeded$3$ViewRootImpl:4995 android.view.ViewRootImpl$$ExternalSyntheticLambda16.run:6 android.os.Handler.handleCallback:938
[DP] rdf()
reportDrawFinished (fn: -1)
updateAppliedLetterboxDirection, direction=1, Caller=android.view.ViewRootImpl.handleDispatchLetterboxDirectionChanged:12773
MSG_WINDOW_FOCUS_CHANGED 0 1
MSG_WINDOW_FOCUS_CHANGED 0 1
updateAppliedLetterboxDirection, direction=1, Caller=android.view.ViewRootImpl.handleDispatchLetterboxDirectionChanged:12773
MSG_WINDOW_FOCUS_CHANGED 0 1
MSG_WINDOW_FOCUS_CHANGED 1 1
ViewPostIme pointer 0
ViewPostIme pointer 1
setSurface called with nullptr
setSurface() destroyed EGLSurface
destroyEglSurface
[ViewRootImpl@69be606[main]#2(BLAST Consumer)2](id:3a8a00000002,api:1,p:14986,c:14986) disconnect: api 1
endAllActiveAnimators on 0xc26fe300 (RippleDrawable) with handle 0xd5b5efb0
dispatchDetachedFromWindow
[ViewRootImpl@69be606[main]#2] destructor()
[ViewRootImpl@69be606[main]#2(BLAST Consumer)2](id:3a8a00000002,api:0,p:-1,c:14986) disconnect
Input channel destroyed: 'a598e8e', fd=151
ensureControlAlpha: for ITYPE_NAVIGATION_BAR on fg.cronomillemiglia/fg.cronomillemiglia.main
MSG_WINDOW_FOCUS_CHANGED 1 1
ViewPostIme pointer 0
ViewPostIme pointer 1
setSurface called with nullptr
setSurface() destroyed EGLSurface
destroyEglSurface
[ViewRootImpl@644b51e[main]#1(BLAST Consumer)1](id:3a8a00000001,api:1,p:14986,c:14986) disconnect: api 1
endAllActiveAnimators on 0xd5f2d100 (RippleDrawable) with handle 0xf02739a0
dispatchDetachedFromWindow
[ViewRootImpl@644b51e[main]#1] destructor()
[ViewRootImpl@644b51e[main]#1(BLAST Consumer)1](id:3a8a00000001,api:0,p:-1,c:14986) disconnect
Input channel destroyed: 'a21dd19', fd=108
ensureControlAlpha: for ITYPE_NAVIGATION_BAR on fg.cronomillemiglia/fg.cronomillemiglia.main
MSG_WINDOW_FOCUS_CHANGED 1 1
startInputInner - Id : 0
startInputInner - mService.startInputOrWindowGainedFocus
Background young concurrent copying GC freed 84997(4213KB) AllocSpace objects, 32(868KB) LOS objects, 39% free, 8124KB/13MB, paused 357us,112us total 116.975ms
Input channel destroyed: 'ClientS', fd=107
setSurface called with nullptr
setSurface called with nullptr
** Receiver (smcmm) OnReceive **
*** Service (smcmm) Create ***
** Service (smcmm) Start **
Service_Start=11:12:24
StartingIntent.Action:android.hardware.usb.action.USB_DEVICE_ATTACHED
Compat change id reported: 160794467; UID 10288; state: ENABLED
** Activity (main) Pause, UserClosed = false **
** Service (smcmm) Destroy **
MSG_WINDOW_FOCUS_CHANGED 0 1
ensureControlAlpha: for ITYPE_NAVIGATION_BAR on fg.cronomillemiglia/fg.cronomillemiglia.main
stopped(false) old=false
notifyKeepScreenOnChanged: keepScreenOn=false
** Activity (main) Resume **
notifyKeepScreenOnChanged: keepScreenOn=false
WakeLock already held.
Relayout returned: old=(65,0,2408,1080) new=(65,0,2408,1080) req=(2343,1080)0 dur=2 res=0x1 s={true 4047400960} ch=false fn=282
MSG_WINDOW_FOCUS_CHANGED 1 1
startInputInner - Id : 0
startInputInner - mService.startInputOrWindowGainedFocus
Buffer size: 16384
Interface succesfully claimed
Control Transfer Response: 7
Control Transfer Response: 0
init
Control Transfer Response: 7
Control Transfer Response: 7
Control Transfer Response: 7
Control Transfer Response: 7
Data obtained from Read buffer:
Raw data from Read buffer:
Number of bytes obtained from Read buffer: 0
Background concurrent copying GC freed 108766(4676KB) AllocSpace objects, 52(1360KB) LOS objects, 49% free, 7253KB/14MB, paused 286us,94us total 194.966ms
Input channel destroyed: 'ClientS', fd=141
Log reader error: java.io.InterruptedIOException: read interrupted
-1 received
writer error
java.lang.InterruptedException
at java.util.concurrent.locks.AbstractQueuedSynchronizer$ConditionObject.reportInterruptAfterWait(AbstractQueuedSynchronizer.java:2042)
at java.util.concurrent.locks.AbstractQueuedSynchronizer$ConditionObject.await(AbstractQueuedSynchronizer.java:2076)
at java.util.concurrent.ArrayBlockingQueue.take(ArrayBlockingQueue.java:387)
at anywheresoftware.b4a.remotelogger.Connector$Writer.run(Connector.java:160)
at java.lang.Thread.run(Thread.java:920)
Starting remote logger. Port: 11031
After accept
** Receiver (smcmm) OnReceive **
*** Service (smcmm) Create ***
** Service (smcmm) Start **
Service_Start=11:13:33
StartingIntent.Action:android.hardware.usb.action.USB_DEVICE_DETACHED
**** StopUSB *****
Control Transfer Response: -1
close
** Service (smcmm) Destroy **
When I connect the USB device, the app is in the foreground. The service does not need to be started in background.I don't see anything in the logs from the last post. The foreground error can be a real issue as the OS prevents services from starting in the background.
*** Service (starter) Create ***
** Service (starter) Start **
** Activity (main) Create, isFirst = true **
APP_FirstTime-Start=12:28:45
** Activity (main) Resume **
*** Service (httputils2service) Create ***
** Service (httputils2service) Start **
** Activity (main) Pause, UserClosed = false **
Reposting event: billing_connected
** Activity (main) Create, isFirst = false **
** Activity (main) Resume **
WakeLock already held.
** Receiver (smusb) OnReceive **
** Receiver (smusb) OnReceive **
** Receiver (smmaster) OnReceive **
** Receiver (smcmm) OnReceive **
*** Service (smcmm) Create ***
** Service (smcmm) Start **
Service_Start=12:28:52
StartingIntent.Action:android.hardware.usb.action.USB_DEVICE_ATTACHED
** Receiver (smusb) OnReceive **
** Activity (main) Pause, UserClosed = false **
** Service (smcmm) Destroy **
** Activity (main) Resume **
WakeLock already held.
Buffer size: 16384
** Receiver (smusb) OnReceive **
** Receiver (smusb) OnReceive **
** Receiver (smcmm) OnReceive **
*** Service (smcmm) Create ***
** Service (smcmm) Start **
Service_Start=12:31:52
StartingIntent.Action:android.hardware.usb.action.USB_DEVICE_ATTACHED
** Activity (main) Pause, UserClosed = false **
** Service (smcmm) Destroy **
** Receiver (smcmm) OnReceive **
*** Service (smcmm) Create ***
** Service (smcmm) Start **
Service started in foreground mode.
Service_Start=12:31:52
StartingIntent.Action:android.hardware.usb.action.USB_DEVICE_DETACHED
**** StopUSB *****
** Service (smcmm) Destroy **
android.app.ForegroundServiceDidNotStartInTimeException: Context.startForegroundService() did not then call Service.startForeground(): ServiceRecord{c09bed7 u0 fg.cronomillemiglia/.smcmm}
at android.app.ActivityThread.throwRemoteServiceException(ActivityThread.java:2152)
at android.app.ActivityThread.access$2800(ActivityThread.java:315)
at android.app.ActivityThread$H.handleMessage(ActivityThread.java:2381)
at android.os.Handler.dispatchMessage(Handler.java:106)
at android.os.Looper.loopOnce(Looper.java:226)
at android.os.Looper.loop(Looper.java:313)
at android.app.ActivityThread.main(ActivityThread.java:8751)
at java.lang.reflect.Method.invoke(Native Method)
at com.android.internal.os.RuntimeInit$MethodAndArgsCaller.run(RuntimeInit.java:571)
at com.android.internal.os.ZygoteInit.main(ZygoteInit.java:1135)
Hi Erel,Context.startForegroundService() did not then call Service.startForeground(): ServiceRecord{c09bed7 u0
This happens because you disabled the automatic foreground mode. You need to call Service.StartForeground yourself, in Service_Start.
Private Sub CreateNotification (Body As String) As Notification
Dim notification As Notification
notification.Initialize2(notification.IMPORTANCE_LOW)
notification.Icon = "icon"
notification.SetInfo("USB-Trigger", Body, Main)
Return notification
End Sub
Logger connected to: PT99653AA1152600807
*** Service (starter) Create ***
** Service (starter) Start **
** Activity (main) Create, isFirst = true **
APP_FirstTime-Start=10:54:15
Can use persistant uri!
** Activity (main) Resume **
*** Service (httputils2service) Create ***
** Service (httputils2service) Start **
ResponseError. Reason: java.net.UnknownHostException: Unable to resolve host "www.google.com": No address associated with hostname, Response:
** Receiver (smstopwatch) OnReceive **
** Receiver (smc4timekeeper) OnReceive **
** Receiver (smcronovesparaid) OnReceive **
** Receiver (smcmm) OnReceive **
*** Service (smcmm) Create ***
** Service (smcmm) Start **
StartingIntent.Action:android.hardware.usb.action.USB_DEVICE_ATTACHED
USB_Start=10:54:40
** Activity (main) Pause, UserClosed = false **
** Service (smcmm) Destroy **
** Activity (main) Resume **
WakeLock already held.
Buffer size: 16384
** Receiver (smmaster) OnReceive **
** Receiver (smcmm) OnReceive **
*** Service (smcmm) Create ***
** Service (smcmm) Start **
StartingIntent.Action:android.hardware.usb.action.USB_DEVICE_DETACHED
USB_Stop=10:57:45
**** StopUSB *****
** Service (smcmm) Destroy **
** Receiver (smspeedpilot) OnReceive **
Logger connected to: CTLGAP1890703438
--------- beginning of crash
--------- beginning of system
--------- beginning of main
*** Service (starter) Create ***
** Service (starter) Start **
Error initializing TTS engine.
** Activity (main) Create, isFirst = true **
APP_FirstTime-Start=12:47:07
** Activity (main) Resume **
*** Service (httputils2service) Create ***
** Service (httputils2service) Start **
** Activity (main) Pause, UserClosed = false **
Reposting event: billing_connected
** Activity (main) Create, isFirst = false **
** Activity (main) Resume **
WakeLock already held.
** Activity (main) Pause, UserClosed = true **
*** Service (starter) Create ***
** Service (starter) Start **
** Activity (main) Create, isFirst = true **
** Activity (main) Resume **
** Activity (main) Pause, UserClosed = false **
** Activity (main) Resume **
** Activity (main) Pause, UserClosed = false **
** Service (starter) Destroy (ignored)**
** Activity (main) Resume **
** Activity (main) Pause, UserClosed = true **
*** Service (starter) Create ***
** Service (starter) Start **
Error initializing TTS engine.
** Activity (main) Create, isFirst = true **
APP_FirstTime-Start=12:55:12
** Activity (main) Resume **
*** Service (httputils2service) Create ***
** Service (httputils2service) Start **
** Receiver (smstopwatch) OnReceive **
*** Service (starter) Create ***
** Service (starter) Start **
** Service (smstopwatch) Create **
** Service (smstopwatch) Start **
Service started in foreground mode.
** Service (smstopwatch) Destroy **
** Receiver (smc4timekeeper) OnReceive **
*** Service (starter) Create ***
** Service (starter) Start **
** Service (smc4timekeeper) Create **
** Service (smc4timekeeper) Start **
Service started in foreground mode.
*** Service (httputils2service) Create ***
** Service (httputils2service) Start **
** Service (smc4timekeeper) Destroy **
** Receiver (smcronovesparaid) OnReceive **
** Receiver (smusb) OnReceive **
*** Service (smusb) Create ***
** Service (smusb) Start **
Service started in foreground mode.
** Service (smusb) Destroy **
*** Service (starter) Create ***
** Service (starter) Start **
Error initializing TTS engine.
** Service (smcronovesparaid) Create **
** Service (smcronovesparaid) Start **
Service started in foreground mode.
*** Service (httputils2service) Create ***
** Service (httputils2service) Start **
** Service (smcronovesparaid) Destroy **
** Receiver (smmaster) OnReceive **
** Receiver (smcmm) OnReceive **
*** Service (smcmm) Create ***
** Service (smcmm) Start **
StartingIntent.Action:android.hardware.usb.action.USB_DEVICE_ATTACHED
USB_Start=12:55:20
*** Service (starter) Create ***
** Activity (main) Pause, UserClosed = false **
** Service (smcmm) Destroy **
** Receiver (smspeedpilot) OnReceive **
*** Service (starter) Create ***
** Service (starter) Start **
** Service (smspeedpilot) Create **
** Service (smspeedpilot) Start **
Service started in foreground mode.
*** Service (httputils2service) Create ***
** Service (httputils2service) Start **
** Service (smspeedpilot) Destroy **
** Service (starter) Start **
Error initializing TTS engine.
** Service (smmaster) Create **
** Service (smmaster) Start **
Service started in foreground mode.
*** Service (httputils2service) Create ***
** Service (httputils2service) Start **
** Service (smmaster) Destroy **
** Activity (main) Resume **
WakeLock already held.
Buffer size: 16384
** Receiver (smstopwatch) OnReceive **
*** Service (smstopwatch) Create ***
** Service (smstopwatch) Start **
Service started in foreground mode.
** Receiver (smc4timekeeper) OnReceive **
** Service (smstopwatch) Destroy **
*** Service (smc4timekeeper) Create ***
** Service (smc4timekeeper) Start **
Service started in foreground mode.
** Receiver (smcronovesparaid) OnReceive **
*** Service (smcronovesparaid) Create ***
** Service (smcronovesparaid) Start **
Service started in foreground mode.
** Receiver (smusb) OnReceive **
** Service (smc4timekeeper) Destroy **
** Service (smcronovesparaid) Destroy **
*** Service (smusb) Create ***
** Service (smusb) Start **
Service started in foreground mode.
** Receiver (smmaster) OnReceive **
*** Service (smmaster) Create ***
** Service (smmaster) Start **
** Service (smusb) Destroy **
** Receiver (smcmm) OnReceive **
*** Service (smcmm) Create ***
** Service (smcmm) Start **
StartingIntent.Action:android.hardware.usb.action.USB_DEVICE_DETACHED
USB_Stop=12:55:24
**** StopUSB *****
** Receiver (smspeedpilot) OnReceive **
Service started in foreground mode.
*** Service (smspeedpilot) Create ***
** Service (smspeedpilot) Start **
Service started in foreground mode.
** Service (smcmm) Destroy **
** Service (smmaster) Destroy **
**** StopUSB *****
** Service (smspeedpilot) Destroy **
** Activity (main) Pause, UserClosed = false **
** Activity (main) Resume **
WakeLock already held.
Intent filters do not depend on the app running or not. The system starts the app when it receives the intent.But I don't understand one thing, if all other apps are not running (all processes are finished), why should they get the event that a usb-device is connected?
Normally only the app that is currently running should receive this event.
Is it possible to receive this intent in another way, for example with a broadcast?Intent filters do not depend on the app running or not. The system starts the app when it receives the intent.
Sub Class_Globals
Private broadcast As BroadCastReceiver
End Sub
'Initializes the object. You can add parameters to this method if needed.
Public Sub Initialize
broadcast.Initialize("broadcast")
broadcast.registerReceiver("android.hardware.usb.action.USB_DEVICE_ATTACHED")
broadcast.registerReceiver("android.hardware.usb.action.USB_DEVICE_DETACHED")
'Set priority to maximum value
broadcast.SetPriority(2147483647)
End Sub
Private Sub broadcast_OnReceive(Action As String, Extras As Object)
'Execute so that other applications do not receive this event
broadcast.AbortBroadcast
If Action="android.hardware.usb.action.USB_DEVICE_ATTACHED" Then
'your code
Else If Action="android.hardware.usb.action.USB_DEVICE_DETACHED" Then
'your code
End If
End Sub
We use cookies and similar technologies for the following purposes:
Do you accept cookies and these technologies?
We use cookies and similar technologies for the following purposes:
Do you accept cookies and these technologies?