标签: huawei-mobile-services

华为、荣耀手机电池优化、前台服务

这个问题可能看起来很宽泛,但我会尽量简短地总结一下。

所以我在 Play 商店Multi Timer Free上复制了一个示例应用程序

应用程序用于设置多个计时器。

我几乎完成了应用程序。但我面临着电池优化和警报管理器的一些问题,特别是华为和荣耀(中国 Andorid OS)。我的前台服务在一段时间后停止工作。

问题: 即使没有电池优化白名单,上面提到的示例应用程序也非常出色。有什么办法可以解决这个问题?

我几乎尝试了以下链接中提到的所有内容。但没有运气

打盹模式 - 前台服务是否继续运行?

ANDROID O中如何处理后台服务?

如何在华为设备上关闭电池优化

如何关闭华为设备上的电池优化

如何在华为设备上关闭电池优化

不要杀死我的应用程序!

华为设备杀死我的前台服务,即使使用 dontkillmyapp.com 的解决方案

保持设备唤醒

优化打瞌睡和应用待机

Android M startActivity 电池优化

华为 EMUI 4.0+ 电池优化(唤醒锁)

当应用程序在华为设备中关闭时服务被终止

奥利奥 (8.1) 无法在锁定屏幕上启动活动

在 Android > 7 中创建永无止境的后台服务

打瞌睡模式如何影响后台/前台服务,有/没有部分/完全唤醒锁?

如果闹钟或睡眠跟踪不起作用怎么办?

示例代码,当按下设备锁定/解锁按钮时,我希望在收到 SCREEN_ON 广播时显示一个简单的 TOAST。这在一段时间内工作正常。

但是在华为设备中 => 通过滑动杀死应用程序后 -> 1 - 2 分钟后,我的吐司将停止工作。

package com.demo.forgroundservicedemo

import android.content.Intent
import android.os.IBinder
import androidx.core.app.NotificationCompat
import android.os.Build
import android.app.*
import android.app.NotificationManager
import android.app.NotificationChannel
import android.content.BroadcastReceiver
import android.content.Context …
Run Code Online (Sandbox Code Playgroud)

android alarmmanager kotlin huawei-mobile-services

6
推荐指数
1
解决办法
904
查看次数

不同风格的模块文件

我正在尝试在同一个应用程序中实现播放服务和华为服务,但希望能够根据口味配置使用哪一个。每种风格都使用它自己的 applicationIdSuffix。所以对于每个不同的风格,华为插件都失败了,我无法编译。

我的应用程序模块的根目录中包含agconnect-services.json文件。我如何为每个构建风格指定这个文件的不同版本?

如果不可能,那么在我的根 build.gradle 文件中,我有这一行:

classpath 'com.huawei.agconnect:agcp:1.1.1.300'
Run Code Online (Sandbox Code Playgroud)

是否可以仅在特定口味上使用此行?

android gradle huawei-mobile-services

6
推荐指数
1
解决办法
1313
查看次数

HMS 核心地图套件,地图加载但无渲染

我正在测试华为的地图套件。

该应用程序已在 App Gallery Connect 中创建,我完成了所有步骤。其他 HMS 服务工作正常。我所有的依赖都是正确的。

因此,我使用视图来表示地图。

onMapReady被调用,查看负载,我可以与地图进行互动,增加销,找到我的位置等,但我不能看地图,只有空白的砖。

我没有收到错误,onMapReady被调用就好了。

我也试过华为 Github 上的演示,结果是一样的。我也尝试过片段,结果相同。

我的 mapView

  <com.huawei.hms.maps.MapView xmlns:android="http://schemas.android.com/apk/res/android"
    xmlns:map="http://schemas.android.com/apk/res-auto"
    android:id="@+id/mapView"
    android:layout_width="match_parent"
    android:layout_height="match_parent"
    map:cameraTargetLat="48.893478"
    map:cameraTargetLng="2.334595"
    map:cameraZoom="8.5"/>
Run Code Online (Sandbox Code Playgroud)

我的 onCreate

 protected void onCreate(Bundle savedInstanceState) {
    super.onCreate(savedInstanceState);
    setContentView(R.layout.activity_huawei_map_test);
    Log.d(TAG, "yo: ");
    if (!hasPermissions(this, RUNTIME_PERMISSIONS)) {
        ActivityCompat.requestPermissions(this, RUNTIME_PERMISSIONS, 100);
    }
    mMapView = findViewById(R.id.mapView);
    Bundle mapViewBundle = null;
    if (savedInstanceState != null) {
        mapViewBundle = savedInstanceState.getBundle(MAPVIEW_BUNDLE_KEY);
    }
    MapsInitializer.setApiKey("");//my key
    mMapView.getMapAsync(this);
    mMapView.onCreate(mapViewBundle);
Run Code Online (Sandbox Code Playgroud)

我的 onMapReady

 @Override
public void onMapReady(HuaweiMap map) {
    //get map instance …
Run Code Online (Sandbox Code Playgroud)

java android huawei-mobile-services huawei-developers

6
推荐指数
1
解决办法
835
查看次数

使用 Flutter 为 Google Play 和华为的 App Gallery 部署应用程序的最佳方式是什么?

我们已经使用 Flutter 在与 GMS 集成的 Google Play 中发布了多个应用程序。现在,我们想将现有的应用程序发布到华为应用程序库。目前,该应用程序已与 GMS 和 HMS 集成以进行推送通知,并且运行良好。为了区分应用程序,我们使用与 Google Play 商店不同的签名为 App Gallery 签名。

经过一番研究,我们发现app bundle id 需要以.huawei 后缀结尾才能与IAP 集成。我们不使用任何 IAP,但将来可能会使用。但是,我们在构建应用程序时遇到了一些问题,因为 GMS 的 bundle id 没有使用 .huawei 后缀。我们更喜欢为 Google Play 和 App Gallery 组合相同的代码库。

我的问题是,是否有必要为华为应用程序库中发布的应用程序包 ID 包含 .huawei 后缀。如果是,使用 Flutter 为 Google Play 和 App Gallery 部署应用程序的最佳方法是什么。

flutter huawei-mobile-services

6
推荐指数
1
解决办法
521
查看次数

android中与华为HMS插件冲突,gradle 7.0.0

我在 Gradle7.0工作正常时遇到了这个错误6.8.3

agcp-gradle-7-错误

AGCP插件

FAILURE:构建失败,出现异常。

  • 出了什么问题:在任务“:app:processDebugAGCPlugin”(类型“AGCPluginTask”)的配置中发现问题。

android gradle huawei-mobile-services huawei-developers

6
推荐指数
1
解决办法
504
查看次数

检测应用程序是否从华为应用市场安装

我想检测应用程序的安装源。

在Android上我们可以使用两种方法来检测安装源:PackageManager#getInstallerPackageName(String)PackageManager#getInstallSourceInfo(String)。这两个调用都将返回安装程序应用程序的包名称。例如:

  • 亚马逊应用商店:com.amazon.venezia
  • 谷歌播放:com.android.vending

我的问题是,对于从华为应用市场安装的应用程序,此方法会返回什么?

android android-package-managers huawei-mobile-services appgallery huawei-developers

6
推荐指数
1
解决办法
1012
查看次数

使用多风味编译GMS和HMS包。但是GMS版本编译的时候报错

我有一个应用程序配置了两种编译风格,一种使用 HMS,另一种则不使用。不使用HMS的flavor编译时,包名与json文件中的包名不一致。结果,出现错误。

Task failed with an exception.
-----------
* What went wrong:
Execution failed for task ':app:processAppgalleryconnectLatestDebugAGCPlugin'.
> ERROR: Failed to verify AGConnect-Config '/client/package_name', expected: 'com.dise.appge.hms', but was: 'com.dise.appge.gms'

* Try:
Run with --stacktrace option to get the stack trace. Run with --info or --debug option to get more log output. Run with --scan to get full insights.
==============================================================================
Run Code Online (Sandbox Code Playgroud)

那么不同风味使用不同包名时如何解决这个问题呢?

android json package firebase huawei-mobile-services

6
推荐指数
1
解决办法
8404
查看次数

广告加载失败,错误代码0(内部错误) - 华为广告实施

我在演示应用程序中不断收到上述错误。我有HMS core版本5.0.0.329(初始版本)。我的互联网连接稳定。我已经在应用程序库上创建了测试应用程序,该应用程序已获得批准,但仍然存在相同的错误。还没有运气。

*注意:此错误仅发生在华为设备 Y6p - 型号 - MED-LX9 -Android 版本 -10 上。三星 S7 上展示的广告 - Android 版本 - 7.0

以下是我的测试应用程序的代码。我使用的是Android studio Arctic Fox 2020.3.1

模块.gradle:

plugins {
id 'com.android.application'
id 'kotlin-android'
id 'com.huawei.agconnect'
}

android {
compileSdk 30

defaultConfig {
    applicationId "com.example.huaweitestads"
    minSdk 21
    targetSdk 30
    versionCode 1
    versionName "1.0"
    testInstrumentationRunner "androidx.test.runner.AndroidJUnitRunner"
}

buildTypes {
    release {
        minifyEnabled false
        proguardFiles getDefaultProguardFile('proguard-android-optimize.txt'), 'proguard-rules.pro'
    }
}
compileOptions {
    sourceCompatibility JavaVersion.VERSION_1_8
    targetCompatibility JavaVersion.VERSION_1_8
}
kotlinOptions {
    jvmTarget = '1.8'
}
}

dependencies { …
Run Code Online (Sandbox Code Playgroud)

android android-studio huawei-mobile-services huawei-developers huawei-ads

6
推荐指数
1
解决办法
1276
查看次数

华为地图无法加载图块

我已遵循此处此处的文档(非常简单),但地图视图不会加载任何图块。

我使用HMS Toolkit,配置向导成功。我还设置了我的 api 密钥,在我的应用程序类和活动类 onCreate 中都使用了这一行。

MapsInitializer.setApiKey(HUAWEI_API_KEY);

以下是设备信息和SDK版本:

  • 手机型号:华为 Y7 Prime 2018
  • EMUI版本:8.0.0
  • HMS核心版本:6.1.0.305
  • 地图SDK版本:com.huawei.hms:maps:6.0.0.301

这是屏幕:

在此输入图像描述

相关错误日志:

E/HmsMapKit_MapView_151:createDelegate:创建者== null

E/HmsMapKit_GrsClient_24:GRS 返回空。

E/HmsMapKit_ErrorTraceLogPusher_4:缓存错误跟踪日志:ErrorTraceLogDTO{ scene = GET_GRS_URL_FAILED', message='GRS 返回空,服务名称为 com.huawei.hms.map。'}

E/HmsMapKit_ErrorTraceLogPusher_12:eventId 为 null 或为空。

E/HmsMapKit_AuthenticateClient_27:com.huawei.hms.maps.foundation.client.c发生异常

E/HmsMapKit_ErrorTraceLogPusher_4:缓存错误跟踪日志:ErrorTraceLogDTO{场景= ACCESS_SERVICE_ERROR',消息='060001:NETWORK_ERROR'}

E/HmsMapKit_AuthenticateCache_0:认证错误,抛出RetryException。

E/HmsMapKit_CopyrightDelegate_27:获取版权声明html数据失败:htmlData = null

E/HmsMapKit_TileCache_38:startUrlRequest身份失败,没有权限获取图块。授权结果:060011

PS:我在这个演示中遇到了完全相同的问题。

android android-studio huawei-mobile-services huawei-developers huawei-map-kit

6
推荐指数
1
解决办法
1373
查看次数

缺少必需参数:client_id

我尝试从 hms 服务器请求 oauth 令牌,但它总是返回missing required parameter: client_id给我。

url: https://oauth-login.cloud.huawei.com/oauth2/v3/token?grant_type=client_credentials&client_id=XXX&client_secret=XXX

header: Content-Type application/x-www-form-urlencoded

response: 
{
    "sub_error": 20001,
    "error_description": "missing required parameter: client_id",
    "error": 1102
}
Run Code Online (Sandbox Code Playgroud)

oauth-2.0 huawei-mobile-services huawei-account

6
推荐指数
1
解决办法
2万
查看次数