小编bin*_*mic的帖子

Google Play安装Referrer API不提供utmCampaign信息

我正在使用Google Play Install Referrer API 1.0来收集安装引荐来源信息.API 完美地提供了utmSourceutmMedium数据,但utmCampaign完全缺失.

我已经启用自动标记功能Google Adwords以及FireBaseAnalytics(分析)显示utmCampaign准确的数据.

返回值的示例:

ReferrerDetails response = mReferrerClient.getInstallReferrer();
response.getInstallReferrer();
Run Code Online (Sandbox Code Playgroud)

如下:

utm_source =谷歌重放&utm_medium =有机

utm_source =(未%20set)&utm_medium =(未%20set)

我想知道为什么缺少utmCampaign数据.

任何人都面临类似的问题并有任何解决方 找到我们的广告系列来源信息至关重要.

android google-adwords google-play

14
推荐指数
1
解决办法
1402
查看次数

textView.getSelectionEnd()返回Samsung Marshmallow 6.0设备上的起始索引值

仅在安装了Android 6.0的三星设备上才会出现此问题.它在所有其他设备上运行良好,包括安卓Android 6.0的非三星设备和Android 5.1及更低版本的三星设备.

目前我们没有任何带有Android 6.0的三星设备可以随时检查它,但我们很快就会安排它.


我们使用此功能:

用户长按TextView中的句子中的单词,然后用户可以编辑所选单词.


我们通过以下方式实现

  • 使TextView可选并添加LongClickListener.
  • 添加自定义选择操作模式CallBack并覆盖onCreateActionMode()以返回false,因为我们不需要默认的剪切 - 复制 - 粘贴操作模式.
  • 处理onLongClickListener以获取精确选定的单词并提供用于更正和替换单词的UI.

我们面临的问题:

textView.getSelectionStart()返回正确的起始索引,但textView.getSelectionEnd()返回start index而不是end index的值.我们有一个保护条件,每当开始和结束索引相同时,选择是为了一个空格,因此我们忽略它,因此在Android 6.0及更高版本的三星设备上的所有单词选择都被忽略,导致功能失败.


我们尝试的事情:

  • 我们尝试使用ActionMode.Callback替换ActionMode.Callback, 如Android 6.0上的"文本选择"部分所述,但它没有帮助解决此问题.
  • 尝试搜索任何与文本选择,剪贴板等相关的额外三星设置,但没有运气.我知道这可能是一个蹩脚的选择,但我没有机会与三星Touchwiz.我确实找到了一个设置来改变触摸选择的延迟,范围从0.5到2.0秒.

代码片段:

tvText.setCustomSelectionActionModeCallback(new ActionMode.Callback() {
        @Override
        public boolean onCreateActionMode(ActionMode mode, Menu menu) {
            return false; // true = create the ActionMode
        }

        @Override
        public boolean onPrepareActionMode(ActionMode mode, Menu menu) {
            return false;
        }

        @Override
        public boolean onActionItemClicked(ActionMode mode, MenuItem item) {
            return false;
        } …
Run Code Online (Sandbox Code Playgroud)

android samsung-mobile android-6.0-marshmallow

10
推荐指数
1
解决办法
378
查看次数

使用 MediaRecorder.AudioSource.VOICE_COMMUNICATION 录制的音频在某些 Android 10 设备上为空

我正在使用以下代码在应用程序中录制语音消息的音频。

MediaRecorder audioRecorder = new MediaRecorder();
audioRecorder.setAudioSource(MediaRecorder.AudioSource.VOICE_COMMUNICATION);
audioRecorder.setOutputFormat(MediaRecorder.OutputFormat.MPEG_4); 
audioRecorder.setAudioEncoder(MediaRecorder.AudioEncoder.HE_AAC);
audioRecorder.setOutputFile(audioRecordingFile);
audioRecorder.prepare();
audioRecorder.start();
Run Code Online (Sandbox Code Playgroud)

使用MediaRecorder.AudioSource.VOICE_COMMUNICATION而不是MediaRecorder.AudioSource.MIC)对于录制预处理干净的音频非常有帮助。

但是,最近我发现在一些最近更新到 Android 10 的设备上报告了一些记录文件为空的问题。 应该注意的是,并非所有的 Android 10 设备都有这些问题,只有少数,即诺基亚 6.1 和米A2。

没有错误或异常,只是空的音频输出文件。

如果我使用MediaRecorder.AudioSource.MIC),则不会出现此问题。

我发现以下与 Android 10 和 VOICE_COMMUNICATION 相关的信息 Android 10 版本包括以下使用 VOICE_COMMUNICATION 捕获的要求。

基于此,我使用以下代码检查了 AcousticEchoCanceler、AutomaticGainControl 和 NoiseSuppressor 的可用性。

AcousticEchoCanceler.isAvailable()
AutomaticGainControl.isAvailable()
NoiseSuppressor.isAvailable()
Run Code Online (Sandbox Code Playgroud)

并在搭载 Android 10 的 Mi A2 和 OnePlus 6 上发现了相同的结果。这两款设备都显示 AcousticEchoCanceler 和 NoiseSuppressor 可用,而 AutomaticGainControl 不可用。

由于并非所有 Android 设备都存在此问题,因此我不想依赖于使用MediaRecorder.AudioSource.MIC)。同时,没有错误、异常或区分因素告诉我何时回退到 MediaRecorder.AudioSource.MIC)

更新: 在 Mi A2 上关闭 Google …

android android-mediarecorder android-10.0

10
推荐指数
1
解决办法
1351
查看次数

如何确定特定设备是否支持SIM硬件?

我想根据SIM硬件是否存在禁用我的应用程序中与CALL和SMS相关的功能.现在初学者的方法是使用以下方法检查手机类型:

if (telephonyManager1.getPhoneType() == TelephonyManager.PHONE_TYPE_NONE)
Run Code Online (Sandbox Code Playgroud)

如果为真则支持.

一切都很好,直到我遇到Sony Tablet S,它只支持数据和消息的SIM卡.没有声音支持.所以对于这个设备我只需要禁用CALL功能,但继续支持SMS.索尼平板电脑返回TelephonyManager.PHONE_TYPE_NONE所以我不能使用上述方法.还有,

telephonyManager1.getSimState();
Run Code Online (Sandbox Code Playgroud)

返回1即SIM_STATE_ABSENT,在HTC FLYER的情况下也是如此,它不支持SIM硬件本身.

那么有什么方法可以让我知道SIM硬件是否存在(无论是否插入SIM卡)?

android telephony tablet

8
推荐指数
1
解决办法
3858
查看次数

Google Play安装引荐来源网址在某些响应中缺少campaignid

我们正在使用Google Play安装引荐来源库进行安装归因。我们从中获得的有效引荐来源网址值为:

网络= g&campaignid = 863200068&loc_physical_ms = 9061947&adsplayload = CAAYBSAB&gclid = CjwKCAjw9sreBRBAEiwARroYmx78Bsi3sKQIq1bqJ-Wak4ZMv5cH7fFPzpBWEmZo2xwDR4b

在此响应中,campaignid参数可帮助我们将安装归因于特定的Google广告系列。

最近,我们观察到许多归因缺失,在进一步调查中,我们发现Google Play安装引荐来源库报告了引荐来源值,如下所示:

adsplayload = CAEYEyAB和AI = CDc7RJknTW9izF8eGwgOb1JXoCKCtv_tTmJzlxdsH3uXAxvwJEAEgufrrQSgCYOXq4wOgAb-cwZQDqQLNQSZoGztNPqgDAaoExAFP0HSFlXr3wwLexHjogJ_YwsAeNo13eqHnvnt-7JCoBqHlhrMyN22uboUAuWhYwG95T-9EGNZVxTYOa8ka2U96AkppPtSbgO03MFaZ2cP5U9RhqBaSevkJDzCpHu14yi4ySZoaXq9mzJEre3eXf9E4dQFkGbgNhlkD5hQ0etd3348oU6W9c46_0E4p6y6Ar8i8q2QO4cT13pZ42cE-MZQd4qOwPBduqJHNY4t1UDiFjbYhfJLZyQzKMK5b16tkCQOGh1T6wAT287OG3AGIBdiL4PYFkAYBoAYasAYBgAep475riAcBkAcCmAcBqAemvhuoB9XJG6gHoQGoB63KG6gHrs0bqAfZyxuoB8_MG7gHpZnd596nq90OwAfl1APAB5zVA8AHmNUD2AcB-gcWY29tLmVkbW9iaWxlbGFicy5zbGluZ5gIAaAI_MA9sAgCuAgB0ggGCAAQAhgCsQk9zYd58BoQVbgT4QKCFCwaKm1vYmlsZWFwcDo6MTAwMDAtY2EtYXBwLWdvb2dsZS1wbGF5LXNlYXJjaA&GCLID = CjwKCAjw9sreBRBAEiwARroYm9OtvIFxn_V_vTJt_m9aRUwj3lFjGQlxUQgh0SucwOQv7uSCv8JP7BoCKhMQAvD_BwE&CONV = 848318015

此参数完全缺少参数Campaignid。这可能是什么原因?解决该问题的解决方案是什么?

除此之外,我们已经观察到在这些情况下,参数adsplayloadconv始终存在。

  • 这些参数是什么(所有这些参数的文档链接)?
  • 是否可以安全地假设万一这两个参数不为空,则归因于Google广告?

android google-adwords install-referrer

8
推荐指数
0
解决办法
436
查看次数

仅在适用于 Android 的 Facebook SDK 中关闭自动收集购买事件

我正在将 Android 版 Facebook SDK 升级到 v5。https://developers.facebook.com/docs/app-events/getting-started-app-events-android#

我不希望自动记录购买事件,因为除了 Google 应用内之外,我还有其他活动的支付网关。我正在手动处理它们。由于我正在更新到 v5,此事件将与其他 2 个事件一起自动发送,如果我将其关闭,那么我将丢失我需要的应用程序安装和应用程序启动事件。

有什么方法可以继续让 SDK 自动报告应用程序安装应用程序启动事件,但不自动发送购买事件?

该指南还提到“但是,如果您已禁用自动日志记录,但仍想记录特定事件,例如安装或购买事件,请在应用程序中手动实现这些事件的日志记录。” 但我无法找到任何有关手动记录 安装应用程序安装的文档。

我还在指南中发现“您还可以使用应用程序仪表板禁用自动应用程序内购买事件日志记录。转到“基本”>“设置”下的 Android 卡,然后将开关切换到“否”。” 但它没有具体说明它将如何与其他两个事件一起使用。

在我看来,我必须保持自动事件打开,并从我的自定义推送购买事件中过滤掉 Google 应用内购买事件,以便它不会重复。

还有其他办法解决这个问题吗?

android facebook facebook-android-sdk facebook-events facebook-sdk-4.x

5
推荐指数
0
解决办法
623
查看次数