小编fde*_*nte的帖子

如何在应用程序处于前台时处理火基通知

我已将Fire基础云消息传递与我的应用程序集成.当我从firebase控制台发送通知时,如果app处于后台/未打开,那么我收到通知,

但当应用处于前台/开放时无法接收通知

所有建议都表示赞赏.

android broadcastreceiver firebase-cloud-messaging

21
推荐指数
2
解决办法
3万
查看次数

SwiftUI中的Geometry Reader是什么?

我正在学习SwiftUI。我遇到了“ GeometryReader”。我想知道为什么以及何时使用它?

swift swiftui

19
推荐指数
1
解决办法
6163
查看次数

当我使用android.test.purchased进行购买时,Google Play服务停止工作

Bundle buyIntentBundle = inappService.getBuyIntent(3, this.getPackageName(), "android.test.purchased", "inapp", "myUserId");
int responseCode = buyIntentBundle.getInt("RESPONSE_CODE");
if (responseCode == 0) {
   PendingIntent pendingIntent = buyIntentBundle.getParcelable("BUY_INTENT");
   this.startIntentSenderForResult(pendingIntent.getIntentSender(), PURCHASE_REQUEST_CODE, new Intent(), 0, 0, 0);
}
Run Code Online (Sandbox Code Playgroud)

看来,当我执行上面的代码时,我的谷歌播放服务将停止运行(崩溃?)

这几天前就已经开始工作了.但现在已经停止了.

你们知道我能做什么吗?当我使用具有beta测试用户的真实产品进行测试时,一切仍然有效.

这是添加的堆栈跟踪.看起来它来自Google Play商店本身.

    07-21 14:28:51.172 18056-18224/? E/AndroidRuntime: FATAL EXCEPTION: AsyncTask #4
                                                       Process: com.android.vending, PID: 18056
                                                       java.lang.RuntimeException: An error occurred while executing doInBackground()
at android.os.AsyncTask$3.done(AsyncTask.java:318)
at java.util.concurrent.FutureTask.finishCompletion(FutureTask.java:354)
at java.util.concurrent.FutureTask.setException(FutureTask.java:223)
at java.util.concurrent.FutureTask.run(FutureTask.java:242)
at java.util.concurrent.ThreadPoolExecutor.runWorker(ThreadPoolExecutor.java:1133)
at java.util.concurrent.ThreadPoolExecutor$Worker.run(ThreadPoolExecutor.java:607)
at java.lang.Thread.run(Thread.java:762)
Caused by: java.lang.NullPointerException: Attempt to read from field 'long com.google.wireless.android.finsky.dfe.nano.an.b' on a null …
Run Code Online (Sandbox Code Playgroud)

android

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

捏合手势迅速放大和缩小相机

我在应用中使用前置摄像头。我希望在拍照时用户可以放大和缩小相机

我尝试了这段代码

let device = AVCaptureDevice.default(for: .video)
print(sender.scale)
let vZoomFactor = sender.scale * prevZoomFactor
if sender.state == .ended {
    prevZoomFactor = vZoomFactor >= 1 ? vZoomFactor : 1
}

if sender.state == .changed{
    do {
        try device!.lockForConfiguration()
        if (vZoomFactor <= device!.activeFormat.videoMaxZoomFactor) {
            device!.videoZoomFactor = max(1.0, min(vZoomFactor, device!.activeFormat.videoMaxZoomFactor))
            device?.unlockForConfiguration()
        } else {
            print("Unable to set videoZoom: (max \(device!.activeFormat.videoMaxZoomFactor), asked \(vZoomFactor))")
        }
    } catch {
        print("\(error.localizedDescription)")
    }
}
Run Code Online (Sandbox Code Playgroud)

后置摄像头中的所有功能均正常运行,但前置摄像头未应用变焦。

uigesturerecognizer avcapturesession avcapturedevice swift

7
推荐指数
1
解决办法
122
查看次数

如何将 appium 连接到 android 上现有的正在运行的应用程序

我正在编写一个跨平台自动化,我有一个 selenium 桌面驱动程序,我执行一些操作,在设备上启动我的服务,并在 android 设备上启动警报,我想接受警报,然后同时使用网络驱动程序和移动驱动程序执行某些功能。

Web 驱动程序工作正常,它在 Web 浏览器上执行所需的操作并在设备端创建警报。

因此,我的应用程序/服务已经在设备上启动,现在当我尝试设置 appium 功能时:

DesiredCapabilities capabilities = new DesiredCapabilities();
capabilities.setCapability("platform", "ANDROID");
capabilities.setCapability("version", "4.4");
capabilities.setCapability("automationName", "uiautomator2");
capabilities.setCapability("deviceName", "karnak");
capabilities.setCapability("platformVersion", "7.1");
capabilities.setCapability("noReset", "true");
capabilities.setCapability("autoGrantPermissions", "true");
capabilities.setCapability("appPackage", "xyz");
capabilities.setCapability("appActivity", ".abc");
capabilities.setCapability("optionalIntentArguments", payload);
Run Code Online (Sandbox Code Playgroud)

发生的情况是 appium 将终止我拥有的现有会话,并将安装应用程序并尝试使用提供的有效负载启动活动,该有效负载现在无效。

因此,有一种方法可以为设备上现有的正在运行的应用程序/服务创建移动驱动程序,而无需安装应用程序并重新启动它。

我发现您必须执行 noReset 但这似乎对我不起作用。我尝试提供 appWaitPackage 和 appWaitActivity 而不是 appPackage 和 appActivity ,但也没有用。

如果你们中有人知道我如何将移动驱动程序附加到现有的运行应用程序/服务,请告诉我。

java selenium-webdriver appium appium-android

5
推荐指数
1
解决办法
686
查看次数

如何使用numberPicker获取setFormatter的值?

我正在使用numberPicker,并在我的numberPicker中找到了显示00、01、02 ...的答案,我使用了setFormatter。问题是,当我调用getValue()时,我将得到0、1、2 ...我需要得到00、01、02 ...,以便我可以在其他视图中将其显示为文本。反正有这样做吗?有或没有setFormatter。

我已经在网上搜索过,并检查是否还有其他人遇到相同的问题,但找不到任何东西:(。

numberPickerLeftHours.setMinValue(0);
numberPickerLeftHours.setMaxValue(23);

//Put a extra 0 in front of single numbers.
numberPickerLeftHours.setFormatter(new NumberPicker.Formatter() {
     @SuppressLint("DefaultLocale")
     @Override
     public String format(int value) {
           Log.i(TAG, "onCreate: numberPickerLeftHours.getValue(): " + numberPickerLeftHours.getValue());
           return String.format("%02d", value);
     }
});
Run Code Online (Sandbox Code Playgroud)

所以我的Log.i(); 值是0、1、2 ...但我需要00、01 ... 09、10、11、12至23。

java android numberpicker

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

将 ForEach 与字符串数组一起使用 - [String] 没有成员“已识别”

我正在使用 Xcode 11 beta 5 并且我所拥有的不再起作用。这是我的代码:

struct ModeView : View {
  @EnvironmentObject var state: IntentionState

  var body: some View {
      Picker(selection: $state.selection, label: Text("")) {
        ForEach(state.modes.identified(by: \.self)) { mode in
          Text(mode)
        }
      }.pickerStyle(SegmentedPickerStyle())
  }
}
Run Code Online (Sandbox Code Playgroud)

错误在行中ForEach(uistate.modes.identified(by: \.self)) { mode in,它说:

“[String]”类型的值没有“已识别”成员

当我使用 Xcode 11 beta 4 时,它运行良好。现在的问题是如何在 Xcode beta 5 中使用 ForEach 和数组字符串

swift swiftui

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