Serge Nova
Member
Hello Dear Programmers,
I have a problem with a work profile application. I have the codes running on Android Studio but I can't convert it to B4X so I need help.
Here is the code for Android Studio:
For contacts (Link)
And for Apps (link)
I try to use code similar to this but nothing works:
If Anyone can help me to convert this code or give me other ideas then it is welcome.
Thanks
I have a problem with a work profile application. I have the codes running on Android Studio but I can't convert it to B4X so I need help.
Here is the code for Android Studio:
For contacts (Link)
Get work and personal contacts:
override fun onCreateLoader(id: Int, args: Bundle?): Loader<Cursor> {
val nameFilter = Uri.encode("a") // names that start with a
val contentURI = when (id) {
PERSONAL_CONTACTS_LOADER_ID -> ContactsContract.Contacts.CONTENT_URI
else -> {
ContactsContract.Contacts.ENTERPRISE_CONTENT_FILTER_URI
.buildUpon()
.appendPath(nameFilter)
.appendQueryParameter(
ContactsContract.DIRECTORY_PARAM_KEY,
ContactsContract.Directory.ENTERPRISE_DEFAULT.toString()
)
.build()
}
}
return CursorLoader(
this, contentURI, arrayOf(
ContactsContract.Contacts.DISPLAY_NAME_PRIMARY
), null, null, null
)
}
And for Apps (link)
Get work and personnal apps:
override fun onCreate(savedInstanceState: Bundle?) {
...
val crossProfileApps = getSystemService(CrossProfileApps::class.java)
val userHandles = crossProfileApps.targetUserProfiles
val label = crossProfileApps.getProfileSwitchingLabel(userHandles.first())
binding.button.apply {
text = label
setOnClickListener {
crossProfileApps.startMainActivity(
componentName,
userHandles.first()
)
}
}
}
I try to use code similar to this but nothing works:
B4X code:
Dim cr As ContentResolver
Dim u As Uri
u.Parse("content://com.android.contacts/entreprise_default")
cr.Initialize("cr")
Dim crsr As Cursor = cr.Query(u, Null, "", Null, "")
Log("Size: " & crsr.RowCount)
printCursor(crsr)
Private Sub printCursor (c As Cursor)
For r = 0 To c.RowCount - 1
c.Position = r
For col = 0 To c.ColumnCount - 1
Log("Info: " & c.GetColumnName((col) & ": " & c.GetString2(col)))
Next
Next
End Sub
If Anyone can help me to convert this code or give me other ideas then it is welcome.
Thanks