因此,我们正要提交我们的应用程序进行审核,但我们被 Google 对针对 Android 13 及更高版本的应用程序的新要求阻止了,该要求基本上告诉开发人员AD_ID在其应用程序中披露权限的目的。问题是,我们的应用程序没有显式声明AD_ID权限,但事实证明某些 play-services 库或 Firebase 使用了它,因此它已合并到我们应用程序的清单中。
因此,我找到了一些解决方案,以便库声明的权限不会合并到应用程序的清单中,但我担心我们的应用程序依赖于 Firebase 的功能可能会停止工作。有人遇到过这种情况吗?
google-play firebase android-permissions android-tiramisu android-13
我在我的应用程序中添加了对每种应用程序语言的支持,即 android 13 功能,现在它是英语和俄语。我可以从设置更改应用程序语言,而无需更改设备语言。现在出于分析目的,我需要了解应用程序语言和设备语言。但如果我的设备是英语且应用程序是俄语,我总是收到俄语 -
Resources.getSystem().configuration.locales.get(0).language - ru
context.resources.configuration.locales[0].language - ru
Locale.getDefault().language - ru
Run Code Online (Sandbox Code Playgroud)
我希望收到来自
Resources.getSystem().configuration.locales.get(0).language
Run Code Online (Sandbox Code Playgroud)
和 茹从
context.resources.configuration.locales[0].language
Run Code Online (Sandbox Code Playgroud)
我会很高兴得到任何帮助
我目前正在尝试为我的应用程序支持每种应用程序语言。我按照说明操作:
locales_config.xml:<?xml version="1.0" encoding="utf-8"?>
<locale_config xmlns:android="http://schemas.android.com/apk/res/android">
<locale android:name="en-US"/>
<locale android:name="fr"/>
</locale_config>
Run Code Online (Sandbox Code Playgroud)
我添加了AndroidManifest.xml:
android:localeConfig="@xml/locales_config"
Run Code Online (Sandbox Code Playgroud)
app/build.gradle,我添加了:android {
...
defaultConfig {
...
resConfigs "en_US", "fr"
}
}
Run Code Online (Sandbox Code Playgroud)
我的问题是我的应用程序没有出现在每应用程序语言设置中。
我在模拟器和运行稳定 Android 13 的手机上进行了测试。
附加信息:
com.android.tools.build:gradle:7.2.2
compileSdkVersion 33
Run Code Online (Sandbox Code Playgroud)
如果有人成功了,我想知道我是否还缺少任何其他附加步骤。
编辑:将和替换
为 时它也不起作用。en-USen_USen
这是谷歌对 RECEIVER_EXPORTED、RECEIVER_NOT_EXPORTED 的解释:
\n\n\n选择广播接收器是否应导出并\n对设备上的其他应用可见。如果此接收器正在侦听\n从系统或其他应用程序\xe2\x80\x94甚至您拥有的\n其他应用程序\n\xe2\x80\x94发送的广播,请使用 RECEIVER_EXPORTED 标志。如果此接收器仅侦听您的应用发送的广播,请使用\nRECEIVER_NOT_EXPORTED 标志。
\n
当我想使用从系统发送的广播时,谷歌说我需要使用 RECEIVER_EXPORTED 但是当我用 和 进行测试"android.intent.action.AIRPLANE_MODE"时"RECEIVER_NOT_EXPORTED"进行测试时。\n我收到了一个广播事件。\n有人能解释一下这句话吗?
当 WebView 可见时,它会持续显示 [AUX] 错误。完整错误显示为
E/GPUAUX: [AUX]GuiExtAuxCheckAuxPath:663: Null anb 任何人都可以帮我找到此问题的原因吗?
我试过这个
第 1 步:- 替换 http => https
步骤2:- 实现 'com.github.delight-im:Android-AdvancedWebView:v3.2.1'
<im.delight.android.webview.AdvancedWebView
android:id="@+id/webview"
android:layout_width="match_parent"
android:layout_height="match_parent" />
Run Code Online (Sandbox Code Playgroud)
但这对我不起作用
由于 Android 13 SDK 中的通知权限最近发生了变化,我需要使用 FCM 集成更新我的应用程序以遵守通知规则。我已将compileSdk升级到33,并将targetSdk升级到33。我编写了代码来询问POST_NOTIFICATIONS,然后出现提示。按“允许”后,将启用通知权限。但在发送推送通知时,应用程序不会收到任何通知。
我只是在请求通知许可时进行了更改。没有更改 FirebaseMessagingService 类中的任何内容。该应用程序以前是 targetSdk 30。
class MyFirebaseMessagingService : FirebaseMessagingService() {
var intent: Intent? = null
var badgecount: Int = 0
override fun onMessageReceived(remoteMessage: RemoteMessage) {
if (remoteMessage.data.isNotEmpty()) {
try {
val json = JSONObject(remoteMessage.data.toString())
handleDataMessage(json)
} catch (e: Exception) {
Log.e("FIREBASEEXCEPTION:", e.message.toString())
}
}
if (remoteMessage.notification != null) {
sendNotification(remoteMessage.notification!!.body)
println("Message Notification Body:" + remoteMessage.notification!!.body)
}
super.onMessageReceived(remoteMessage)
}
private fun handleDataMessage(json: JSONObject) {
try {
val data = json.getJSONObject("body")
val badge = data.getString("badge") …Run Code Online (Sandbox Code Playgroud) android push-notification kotlin firebase-cloud-messaging android-13
我发现了一些错误(或没有?)。我有一个收音机应用程序,可以检测歌曲并将这些歌曲的封面设置为媒体播放器通知。我注意到 MediaStyle 通知中的数据来自 mediasessioncompat 的元数据。我在发生变化时设置数据(下载新歌曲/封面):
MediaMetadataCompat.Builder builder = new MediaMetadataCompat.Builder();
builder.putString(MediaMetadataCompat.METADATA_KEY_ALBUM, metadataTitle);
builder.putString(MediaMetadataCompat.METADATA_KEY_ARTIST, name);
builder.putString(MediaMetadataCompat.METADATA_KEY_TITLE, metadataTitle);
builder.putString(MediaMetadataCompat.METADATA_KEY_MEDIA_ID, radioData.getId());
builder.putLong(MediaMetadataCompat.METADATA_KEY_DURATION, duration);
builder.putString(MediaMetadataCompat.METADATA_KEY_ALBUM_ART_URI, songCover);
builder.putBitmap(MediaMetadataCompat.METADATA_KEY_ALBUM_ART, icon);
Run Code Online (Sandbox Code Playgroud)
一切正常,但当我加载新封面(METADATA_KEY_ALBUM_ART)并且只想更改封面时,它不起作用。它适用于以前的 Android 版本。我的用例:设置广播数据 -> 获取歌曲数据 -> 设置歌曲数据(标题,艺术家),新通知 -> 加载封面 -> 设置下载的封面(新通知) - 这里通知中的图像不会改变(但颜色叠加可以)。我需要更改一些标题/艺术家数据才能使其更改。这是正常行为吗?
编辑:我创建了一个错误请求:https://issuetracker.google.com/issues/243778594
我的应用程序的目标平台是 Android 13 (API 33)。我的应用程序有振动模式。当我将应用程序置于振动模式时,它会根据操作振动而不是播放声音。我面临的问题是,在 Android 13 中,当“振动和触觉”从设置中关闭时,我的应用程序的振动也无法正常工作。即使“振动和触觉”在手机级别关闭,我的应用程序振动也始终有效吗?
我们有什么方法可以在代码中知道“振动和触觉”是打开还是关闭吗?
在三星设备的 Android 13 中启用双信使应用程序功能,flutter 应用程序安装两次,如何防止这种行为?
我不知道该怎么办
我正在使用新的 Android 13 API 从用户的图库中挑选图像+视频。但是,调用新 API 时显示的 UI 不允许我浏览在设备库中创建的文件夹。我只能看到最近的媒体...滚动起来很混乱...我是否遗漏了代码中的某些内容?
int requestCode;
Intent libraryIntent;
requestCode = REQUEST_LAUNCH_LIBRARY;
libraryIntent = new Intent(MediaStore.ACTION_PICK_IMAGES);
libraryIntent.putExtra(MediaStore.EXTRA_PICK_IMAGES_MAX, 5);
libraryIntent.putExtra("forceShowBrowse", true);
libraryIntent.setType("*/*");
libraryIntent.putExtra(Intent.EXTRA_MIME_TYPES, new String[]{"image/*", "video/*"});
currentActivity.startActivityForResult(libraryIntent, requestCode);
Run Code Online (Sandbox Code Playgroud)
这里只有最近的