Android Question Alternative to Email Library

Scantech

Well-Known Member
Licensed User
Longtime User
Email library will not work with Android 7+.

Do we have a workaround for this?
 

DonManfred

Expert
Licensed User
Longtime User
Email library will not work with Android 7+.
Really? Who said that?

It does work for me. I am using an Device wih Android 7.1 using targetSdk of 26
*** Service (starter) Create ***
** Service (starter) Start **
** Activity (main) Create, isFirst = true **
** Activity (main) Resume **
POP_ListCompleted(true,{1=136643, 2=17959, 3=23327, 4=35846, 5=29200, 6=15509, 7=44699, 8=60305, 9=17106, 10=16224, 11=42007, 12=62608, 13=25883, 14=101818, 15=115765, 16=138521, 17=616662})
POP_StatusCompleted(true,17,1500082)
** Activity (main) Pause, UserClosed = false **
** Activity (main) Resume **
 
Last edited:
Upvote 0

Scantech

Well-Known Member
Licensed User
Longtime User
*** Service (starter) Create ***
** Service (starter) Start **
** Activity (main) Create, isFirst = true **
~w:1004,main,4209
MAP READ
~w:1004,main,601
MAP READ
** Activity (main) Resume **
android.permission.WRITE_EXTERNAL_STORAGE true
android.permission.ACCESS_COARSE_LOCATION true
*** Service (comserial) Create ***
** Service (comserial) Start **
Billing service connected.
Checking for in-app billing 3 support.
In-app billing version 3 supported for scantech.cardiagnosticpro
Subscriptions AVAILABLE.
true, Setup successful. (response: 0:OK)
Subscriptions supported: true
Starting async operation: refresh inventory
Querying owned items, item type: inapp
Package name: scantech.cardiagnosticpro
Calling getPurchases with continuation token: null
Owned items response: 0
Continuation token: null
Querying SKU details.
queryPrices: nothing to do because there are no SKUs.
Querying owned items, item type: subs
Package name: scantech.cardiagnosticpro
Calling getPurchases with continuation token: null
Owned items response: 0
Continuation token: null
Querying SKU details.
queryPrices: nothing to do because there are no SKUs.
Ending async operation: refresh inventory
true
(MyMap) {}
-16776961
** Activity (main) Pause, UserClosed = false **
No wakelock.
** Activity (main) Resume **
main_diagreportlistviewshare (B4A line: 13533)
StartActivity(e.GetIntent)
android.os.FileUriExposedException: file:///storage/emulated/0/Car%20Diagnostic%20Pro/Diagnostic%20Report/PPS%20v1.5.cgLog.txt exposed beyond app through ClipData.Item.getUri()
at android.os.StrictMode.onFileUriExposed(StrictMode.java:1799)
at android.net.Uri.checkFileUriExposed(Uri.java:2346)
at android.content.ClipData.prepareToLeaveProcess(ClipData.java:832)
at android.content.Intent.prepareToLeaveProcess(Intent.java:9483)
at android.content.Intent.prepareToLeaveProcess(Intent.java:9468)
at android.app.Instrumentation.execStartActivity(Instrumentation.java:1525)
at android.app.Activity.startActivityForResult(Activity.java:4399)
at android.support.v4.app.BaseFragmentActivityApi16.startActivityForResult(BaseFragmentActivityApi16.java:54)
at android.support.v4.app.FragmentActivity.startActivityForResult(FragmentActivity.java:68)
at android.app.Activity.startActivityForResult(Activity.java:4358)
at android.support.v4.app.FragmentActivity.startActivityForResult(FragmentActivity.java:751)
at android.app.Activity.startActivity(Activity.java:4682)
at android.app.Activity.startActivity(Activity.java:4650)
at anywheresoftware.b4a.keywords.Common.StartActivity(Common.java:846)
at scantech.cardiagnosticpro.main._diagreportlistviewshare(main.java:17225)
at scantech.cardiagnosticpro.main$ResumableSub_DiagReportListView_LongClick.resume(main.java:16995)
at anywheresoftware.b4a.BA.checkAndRunWaitForEvent(BA.java:240)
at anywheresoftware.b4a.BA.raiseEvent2(BA.java:180)
at anywheresoftware.b4a.BA.raiseEvent(BA.java:166)
at anywheresoftware.b4a.keywords.Common$3.onClick(Common.java:547)
at com.android.internal.app.AlertController$AlertParams$3.onItemClick(AlertController.java:1257)
at android.widget.AdapterView.performItemClick(AdapterView.java:339)
at android.widget.AbsListView.performItemClick(AbsListView.java:1705)
at android.widget.AbsListView$PerformClick.run(AbsListView.java:4171)
at android.widget.AbsListView$13.run(AbsListView.java:6735)
at android.os.Handler.handleCallback(Handler.java:751)
at android.os.Handler.dispatchMessage(Handler.java:95)
at android.os.Looper.loop(Looper.java:154)
at android.app.ActivityThread.main(ActivityThread.java:6682)
at java.lang.reflect.Method.invoke(Native Method)
at com.android.internal.os.ZygoteInit$MethodAndArgsCaller.run(ZygoteInit.java:1520)
at com.android.internal.os.ZygoteInit.main(ZygoteInit.java:1410)

B4X:
Sub DiagReportListViewShare(Index As Int, Value As String)
'    Try
        If Value = "*Mask*" Then Return        'AVOID MASK PANEL
        If Value = "***Mask" Then Return
       
        Dim e As Email
        Dim strBuild As StringBuilder
        strBuild.Initialize
       
        Dim Map1 As Map
        Map1.Initialize
       
        Dim GetVin, GetRO, TempValue As String
       
        Dim strIdent As String
        strIdent = Value
        'internal
        If strIdent.Contains("**INTERNAL**") Then
            strIdent = strIdent.SubString(12)
            If File.Exists(File.DirInternal, DiagReportDir & strIdent & ".txt") Then
                e.Attachments.Add(File.Combine(File.DirInternal, DiagReportDir & strIdent & ".txt"))
                strBuild.Append(File.ReadString(File.DirInternal, DiagReportDir & strIdent & ".txt"))
                Map1 = File.ReadMap(File.DirInternal, DiagReportDir & strIdent)
            End If
        'external
        Else      
            If File.Exists(File.DirRootExternal, DiagReportDir & strIdent & ".txt") Then
                e.Attachments.Add(File.Combine(File.DirRootExternal, DiagReportDir & strIdent & ".txt"))
                strBuild.Append(File.ReadString(File.DirRootExternal, DiagReportDir & strIdent & ".txt"))
                Map1 = File.ReadMap(File.DirRootExternal, DiagReportDir & strIdent)
            End If
        End If
       
        GetVin = Map1.Get("Vin")
        GetRO = Map1.Get("RO")

        'RO
        If GetRO = "null" Or GetRO = "" Then
        Else
            TempValue = "RO#: " & GetRO
        End If
       
        'VIN      
        If GetVin = "null" Or GetVin = "" Then
        Else
            TempValue = TempValue & " " & "VIN: " & GetVin
        End If
       
        e.Subject = "Diagnostic Report Log (" & TempValue & ")"
        e.Body = strBuild.ToString
        e.To.Add("")
           
        StartActivity(e.GetIntent) 'this is where the point break stops
'    Catch
'        Msgbox2Async("Error occurred in DiagReportListaViewShare." & Chr(10) & LastException.Message, "Error", "OK", "", "", LoadBitmap(File.DirAssets, "disclaimer.png"), True)
'    End Try
End Sub
 
Upvote 0

DonManfred

Expert
Licensed User
Longtime User
Upvote 0
Top