关于在android中检测来电和去电有很多问题,但它们都是旧的,而且android弃用了有用的功能,google play拒绝了我的应用程序,因为我正在使用它们。
为了检测我使用的拨出电话:
<uses-permission android:name="android.permission.PROCESS_OUTGOING_CALLS" />
Run Code Online (Sandbox Code Playgroud)
并且还收听android.intent.action.NEW_OUTGOING_CALL广播听众。
根据谷歌文档(this),我们应该使用CallRedirectionServiceand CallScreeningService。但这些服务适用于 API 29+。
那么有什么方法可以检测不弃用且不使用敏感权限的传入和传出呼叫?
如果有任何调用,我想关闭我的套接字连接,如果没有,我想重新打开它。
android android-service telephonymanager android-permissions android-broadcast
我有一个 UseCase 和远程存储库,它们在循环中返回 Flow,并且我在 ViewModel 中收集 UseCase 的结果,如下所示:
viewModelScope.launch {
useCase.updatePeriodically().collect { result ->
when (result.status) {
Result.Status.ERROR -> {
errorModel.value = result.errorModel
}
Result.Status.SUCCESS -> {
items.value = result.data
}
Result.Status.LOADING -> {
loading.value = true
}
}
}
}
Run Code Online (Sandbox Code Playgroud)
问题是当应用程序处于后台(最小化)时流程继续工作。那么我可以在应用程序在后台时暂停它并在应用程序返回前台时恢复它吗?
而且我也不想观察我视图中的数据(片段或活动)。
在Android Studio中,当我按下 Alt + Enter 并将方法参数分配给类成员字段时,我正在处理Java类.
但是当我使用Kotlin时,没有对此功能的建议.
我可以为此创建新建议还是有任何方法为字段分配参数?
Java类建议:
科特林班建议:
我想在令牌准备好后将客户端 FCM 令牌发送到我的服务器,因此我需要 MyFirebaseMessagingService 中的用户存储库。
问题是 FirebaseMessagingService 需要默认的空构造函数。那么如何将我的 userRepo 注入 MyFirebaseMessagingService 类中?我使用 Koin 作为依赖注入
上周,我在回收站视图中遇到了一个奇怪的行为和新问题。Recyclerview 直到滚动才显示项目,实际上,在调试之后我知道onbindeViewHolder在调用notifyDataSetChanged().
这是我的适配器代码:
class CalendarAdapter(val viewModel: CalendarViewModel) :
RecyclerView.Adapter<RecyclerView.ViewHolder>() {
private lateinit var items: List<RequestBookingBaseModel>
fun setData(data: List<RequestBookingBaseModel>) {
items = data
notifyDataSetChanged()
}
override fun onCreateViewHolder(parent: ViewGroup, viewType: Int): RecyclerView.ViewHolder {
return MyViewHolder
}
override fun getItemCount(): Int {
if (::items.isInitialized) {
return items.size
}
return 0
}
}
override fun onBindViewHolder(holder: RecyclerView.ViewHolder, position: Int) {
// do something
}
}
Run Code Online (Sandbox Code Playgroud)
我的活动是这样的:
class CalendarFragment : BaseFragment() {
...
do something
...
fun showList(listOfItems : ArrayList<String>){ …Run Code Online (Sandbox Code Playgroud)