如何实现与textAllCaps
Jetpack Compose 中相同的效果,我知道我可以对toUpperCase
字符串本身使用方法将字符串转换为大写。但我想知道是否有一个属性可以添加到可Text
组合项中以直观地将文本转换为大写?
Text(
text = stringResource(id = R.string.app_name).toUpperCase(Locale.current)
)
Run Code Online (Sandbox Code Playgroud) 我正在开发一个 Android 应用程序,我想将应用程序移动到一个新的 firebase 项目,所以我删除了旧的 firebase 项目并创建了一个新的项目,然后我将我的应用程序添加到该项目中。在那之后,没有 Firebase 功能在工作。
我的应用程序中有 firebase 云消息传递,它正在工作,但现在无法工作,我没有收到FirebaseMessagingService$onNewToken
,而且我正在firestore
用作我的后端数据库。在我里面我.addOnSuccessListener
得到0
取回文件。它没有失败,但没有返回任何文件。
我认为可能是 firebase 的问题,所以我在其中创建了一个测试应用程序,node.js
并尝试从中获取文档firestore
它工作正常。
android 应用程序没有崩溃,但检查了错误日志,我看到了以下日志。
java.util.concurrent.ExecutionException: com.google.firebase.installations.FirebaseInstallationsException
at com.google.android.gms.tasks.Tasks.zzb(Unknown Source:61)
at com.google.android.gms.tasks.Tasks.await(Unknown Source:23)
at com.google.firebase.iid.zzs.zzb(com.google.firebase:firebase-iid@@20.1.1:54)
at com.google.firebase.iid.zzs.zza(com.google.firebase:firebase-iid@@20.1.1:89)
at com.google.firebase.iid.zzv.run(Unknown Source:12)
at java.util.concurrent.ThreadPoolExecutor.runWorker(ThreadPoolExecutor.java:1167)
at java.util.concurrent.ThreadPoolExecutor$Worker.run(ThreadPoolExecutor.java:641)
at java.lang.Thread.run(Thread.java:764)
Caused by: com.google.firebase.installations.FirebaseInstallationsException
at com.google.firebase.installations.FirebaseInstallations.doRegistrationInternal(com.google.firebase:firebase-installations@@16.0.0:333)
at com.google.firebase.installations.FirebaseInstallations.doGetId(com.google.firebase:firebase-installations@@16.0.0:280)
at com.google.firebase.installations.FirebaseInstallations.access$lambda$0(Unknown Source:0)
at com.google.firebase.installations.FirebaseInstallations$$Lambda$1.run(Unknown Source:2)
at java.util.concurrent.ThreadPoolExecutor.runWorker(ThreadPoolExecutor.java:1167)
at java.util.concurrent.ThreadPoolExecutor$Worker.run(ThreadPoolExecutor.java:641)
at java.lang.Thread.run(Thread.java:764)
2020-03-05 21:18:49.022 23658-23666/app.spidy.cyberwire E/spidy.cyberwir: Something went wrong getting fds from adb. …
Run Code Online (Sandbox Code Playgroud) 我正在尝试使用 Jetpack Compose Coil 显示具有填充宽度和自动高度的图像。我希望图像采用完整宽度和自动高度。但图像仅在我指定固定高度时显示。
Image(
painter = rememberImagePainter(
data = post.image
),
contentDescription = null,
contentScale = ContentScale.Crop,
modifier = Modifier.fillMaxWidth()
)
Run Code Online (Sandbox Code Playgroud)
我尝试使用.fillMaxHeight()
and.fillMaxSize()
但它不起作用。我有什么办法可以实现这个目标吗?
我正在尝试在 exoplayer 中离线下载视频,我想在活动中显示下载进度。
我如何绑定到DownloadService
in exoplayer。以便我可以更新活动中的当前下载进度?我尝试覆盖onBind
方法,但没有onBind
方法。
下载服务
class MediaDownloadService : DownloadService(
C.DOWNLOAD_NOTIFICATION_ID, 1000,
C.CHANNEL_ID, R.string.channel_name, R.string.channel_description
) {
private lateinit var downloadManager: DownloadManager
override fun onCreate() {
downloadManager = DownloadUtil.getDownloadManager(this)
downloadManager.addListener(object : DownloadManager.Listener {
override fun onDownloadChanged(downloadManager: DownloadManager, download: Download) {
if (download.bytesDownloaded == download.contentLength) {
toast("Download Completed!")
}
debug(download.failureReason)
}
})
super.onCreate()
}
override fun getDownloadManager(): DownloadManager {
return downloadManager
}
override fun getForegroundNotification(downloads: MutableList<Download>): Notification {
val intent = Intent(this, MainActivity::class.java)
val pendingIntent …
Run Code Online (Sandbox Code Playgroud) 我刚刚开始学习 Jetpack Compose,UI 如此简化真是太好了。我正在学习如何使用 Jetpack 组合RecyclerView
(Lazycolumn)等来实现所有 XML 视图。
我想知道如何在 Jetpack Compose 中显示 AdMob 横幅广告。我知道我们可以通过互操作性 API 来使用经典的 XML 视图。
AndroidView(...) {
...
}
Run Code Online (Sandbox Code Playgroud)
有没有一种Compose的方式来实现Admob?或者我只能使用 AndroidView 以编程方式创建横幅广告视图。
我正在从其他应用程序接收一些文本,例如,如果人们从 YouTube 应用程序共享视频,我的应用程序将显示在可共享列表中。如果他们选择我的应用程序,我想获取文本内容。
我有一个像这样的意图过滤器。
<intent-filter>
<action android:name="android.intent.action.SEND" />
<category android:name="android.intent.category.DEFAULT" />
<data android:host="*" android:mimeType="text/*" />
</intent-filter>
Run Code Online (Sandbox Code Playgroud)
onNewIntent
我可以使用活动中的方法访问数据。
override fun onNewIntent(intent: Intent?) {
Log.d(TAG, intent?.getStringExtra(Intent.EXTRA_TEXT).toString())
super.onNewIntent(intent)
}
Run Code Online (Sandbox Code Playgroud)
但我想访问可组合函数内的文本,我该怎么做?
我是一名 Android 开发人员,拥有使用 Jetpack Compose 的经验。现在,我正在尝试构建桌面应用程序,所以我找到了这个Compose for Desktop项目。我想JSON
使用桌面应用程序存储一个文件,以便我可以从桌面应用程序读取该文件并将其显示给用户。不仅是 JSON 文件,我还想存储一些其他文件,例如 HTML。
在 Android 中,我可以使用raw
或assets
文件夹,但我不知道如何在 Compose for Desktop 中执行此操作。
如果有人能指出我正确的方向,我将不胜感激。
kotlin android-jetpack-compose compose-desktop compose-multiplatform
我正在尝试从 python 脚本与 Flask websocket 通信。但我收到以下异常。
Traceback (most recent call last):
File "client.py", line 5, in <module>
socket = create_connection("ws://127.0.0.1:5000")
File "C:\Users\anyms\AppData\Local\Programs\Python\Python37-32\lib\site-packages\websocket\_core.py", line 514, in create_connection
websock.connect(url, **options)
File "C:\Users\anyms\AppData\Local\Programs\Python\Python37-32\lib\site-packages\websocket\_core.py", line 226, in connect
self.handshake_response = handshake(self.sock, *addrs, **options)
File "C:\Users\anyms\AppData\Local\Programs\Python\Python37-32\lib\site-packages\websocket\_handshake.py", line 79, in handshake
status, resp = _get_resp_headers(sock)
File "C:\Users\anyms\AppData\Local\Programs\Python\Python37-32\lib\site-packages\websocket\_handshake.py", line 160, in _get_resp_headers
raise WebSocketBadStatusException("Handshake status %d %s", status, status_message, resp_headers)
websocket._exceptions.WebSocketBadStatusException: Handshake status 404 NOT FOUND
Run Code Online (Sandbox Code Playgroud)
应用程序
from flask import Flask
from flask_socketio import SocketIO, send
app …
Run Code Online (Sandbox Code Playgroud) 我的应用程序需要备份 WhatsApp 状态、语音注释和图像的功能。如您所知,Android Q 后谷歌强制使用 MediaStore API 访问外部媒体文件。
WhatsApp 还将他们的文件移至/Android/media/com.whatsapp/WhatsApp
. 我尝试使用MANAGE_EXTERNAL_STORAGE
权限,它工作正常,但备份这些文件不是应用程序的核心功能,所以我认为谷歌不会让我使用此权限。
我想知道是否有任何方法可以使用 MediaStore.VOLUME_EXTERNAL 读取这些文件?
我尝试过这样的事情。我不确定这是否可能。
val collection = MediaStore.Images.Media.getContentUri(MediaStore.VOLUME_EXTERNAL)
val selection= (MediaStore.Files.FileColumns.MEDIA_TYPE + "="
+ MediaStore.Files.FileColumns.MEDIA_TYPE_NONE)
val selectionArgs= arrayOf("%/WhatsApp/Media/.Statuses%")
val cursor = applicationContext.contentResolver.query(
collection, null, selection, selectionArgs, null)
debug(cursor?.columnCount)
cursor?.close()
Run Code Online (Sandbox Code Playgroud)
它抛出异常。
Caused by: android.database.sqlite.SQLiteException: no such column: media_type
Run Code Online (Sandbox Code Playgroud) 我正在使用 Jetpack Compose 创建一个应用程序。该应用程序在后台进行一些网络搜索。如果用户决定按后退按钮,我想取消搜索。所以我用DisposableEffect
.
@Composable
fun SecondScreen() {
val vm: MainViewModel = hiltViewModel()
DisposableEffect(key1 = vm) {
onDispose {
vm.cancelSearch()
}
}
}
Run Code Online (Sandbox Code Playgroud)
我知道onDispose
当可组合项被销毁时会调用它。但现在每次旋转屏幕时搜索都会被取消。我可以理解这一点,因为可组合项被破坏并重新创建。
我想知道我是否可以检测屏幕旋转生命周期,也许我可以防止这种行为。或者是否有更好的方法在用户按返回时取消搜索?
我可以Math
在课堂上扩展对象吗?我希望Math
静态字段在我的课堂内是静态的。
class MyClass extends Math {
constructor() {
super();
}
}
console.log(MyClass.PI);
Run Code Online (Sandbox Code Playgroud)
我想从设置为的自定义布局访问视图preference
设置屏幕.xml
<?xml version="1.0" encoding="utf-8"?>
<PreferenceScreen
xmlns:android="http://schemas.android.com/apk/res/android">
<Preference
android:key="storage"
android:layout="@layout/layout_storage" />
...
</PreferenceScreen>
Run Code Online (Sandbox Code Playgroud)
设置Fragment.kt
class SettingsFragment: PreferenceFragmentCompat() {
override fun onCreatePreferences(savedInstanceState: Bundle?, rootKey: String?) {
}
override fun onCreate(savedInstanceState: Bundle?) {
super.onCreate(savedInstanceState)
addPreferencesFromResource(R.xml.settings_screen)
}
}
Run Code Online (Sandbox Code Playgroud)
stackoverflow 上有一个与此类似的问题,但在该答案中,他是从主布局文件而不是从preference
PreferenceFragmentCompat 自定义布局
我还发现这篇文章,他使用onBindView
方法来访问自定义视图。
https://code.luasoftware.com/tutorials/android/override-layout-of-android-preference/
但没有方法onBindView
调用PreferenceFragmentCompat
更新
布局存储.xml
class SettingsFragment: PreferenceFragmentCompat() {
override fun onCreatePreferences(savedInstanceState: Bundle?, rootKey: String?) {
}
override fun onCreate(savedInstanceState: Bundle?) {
super.onCreate(savedInstanceState)
addPreferencesFromResource(R.xml.settings_screen)
}
}
Run Code Online (Sandbox Code Playgroud)
现在我想得到progressBar
android ×7
kotlin ×3
admob ×1
coil ×1
ecmascript-6 ×1
exoplayer2.x ×1
firebase ×1
flask ×1
inheritance ×1
javascript ×1
mediastore ×1
python ×1
python-3.x ×1
websocket ×1