小编Jer*_*ste的帖子

IAB没有返回未消费的购买

我有一个使用Google的应用内结算API进行应用内购买的应用.这通常很有效,即使在购买之后互联网连接丢失,这使得产品显示为未消费的购买.然而,在某些边缘情况下,涉及在购买期间开启和关闭几次wifi,有时会发生购买处理(即已支付金钱),但尚未在应用中消费.

使用getPurchases()方法时,即使文档说它应该是,也不会将此产品作为未消费的购买返回.但是,当尝试再次购买此产品时,API会返回代码BILLING_RESPONSE_RESULT_ITEM_ALREADY_OWNED.
所以这个产品标记为未消费.

有趣的是,adb shell pm clear com.android.vending在我的终端中运行命令后,此产品确实显示在返回的列表中getPurchases().

这里发生了什么,产品在运行终端命令后才显示为未消耗的产品?如何在getPurchases调用中显示此产品?

(如果无法修复此问题,也许我可以在加载可以进行购买的视图时"模拟"每个项目的购买过程,检查它是否返回BILLING_RESPONSE_RESULT_ITEM_ALREADY_OWNED代码,授予用户购买每个项目和以编程方式解决此次购买.但这似乎有些夸张.)

android in-app-billing

9
推荐指数
1
解决办法
248
查看次数

在ARCore中,我如何最好地将一个三角形放置在Pose附近的世界中,我可以用它来进行光线交叉?

我正在使用java在Android Studio中使用ARCore,并尝试与对象实现光线交叉.我从Google提供的示例开始(如下所示:https://developers.google.com/ar/develop/java/getting-started).在触摸屏幕时,投射光线,并且当该光线接触平面时,在交叉点中创建PlaneAttachment(具有锚点/姿势).

然后我想在这个Pose的世界里放一个3D三角形.目前我根据Pose的翻译创建了我的Triangle,如下所示:

在HelloArActivity中,在onDrawFrame(...)期间

//Code from sample, determining the hits on planes
MotionEvent tap = mQueuedSingleTaps.poll();
if (tap != null && frame.getTrackingState() == TrackingState.TRACKING) {
    for (HitResult hit : frame.hitTest(tap)) {
        // Check if any plane was hit, and if it was hit inside the plane polygon.
        if (hit instanceof PlaneHitResult && ((PlaneHitResult) hit).isHitInPolygon()) {
            mTouches.add(new PlaneAttachment(
                ((PlaneHitResult) hit).getPlane(),
                mSession.addAnchor(hit.getHitPose())));

            //creating a triangle in the world
            Pose hitPose = hit.getHitPose();
            float[] poseCoords = new float[3];
            hitPose.getTranslation(poseCoords, …
Run Code Online (Sandbox Code Playgroud)

java android arcore

6
推荐指数
0
解决办法
711
查看次数

Android Firebase Analytics:预定义和自定义参数无法按预期工作

我有一个原生Android项目,它使用Google Analytics for Firebase进行事件报告.我有几个共享相同参数的事件,但其中一些会计入自定义参数限制,而其他事件则不计.我正在使用的事件是建议的常见事件,并且主要使用带有一个或两个自定义参数的建议参数.我有几个关于事件和参数在Firebase控制台上显示的方式的问题,使用下面的示例(您可以假设提供的值是正确的数据类型).

BEGIN_CHECKOUT

Bundle bundle = new Bundle();
bundle.putString(FirebaseAnalytics.Param.ITEM_ID, itemId);
bundle.putString(FirebaseAnalytics.Param.ORIGIN, itemOrigin);
bundle.putString(FirebaseAnalytics.Param.DESTINATION, itemDestination);
bundle.putString(FirebaseAnalytics.Param.START_DATE, itemStartDate);
bundle.putString(FirebaseAnalytics.Param.END_DATE, itemEndDate);
bundle.putLong(FirebaseAnalytics.Param.NUMBER_OF_PASSENGERS, itemNumberOfPassengers);
bundle.putString(FirebaseAnalytics.Param.TRAVEL_CLASS, itemTravelClass);
bundle.putString(FirebaseAnalytics.Param.CURRENCY, itemCurrency);
bundle.putDouble(FirebaseAnalytics.Param.VALUE, itemValue);
bundle.putString("travel_type", itemTravelType);
mFirebaseAnalytics.logEvent(FirebaseAnalytics.Event.BEGIN_CHECKOUT, bundle);
Run Code Online (Sandbox Code Playgroud)

在Firebase Analytics中,在"事件"选项卡上,此事件显示如下: begin_checkout控制台

另一个例子:ECOMMERCE_PURCHASE

Bundle bundle = new Bundle();
bundle.putString(FirebaseAnalytics.Param.ITEM_ID, itemId);
bundle.putString(FirebaseAnalytics.Param.ORIGIN, itemOrigin);
bundle.putString(FirebaseAnalytics.Param.DESTINATION, itemDestination);
bundle.putString(FirebaseAnalytics.Param.START_DATE, itemStartDate);
bundle.putString(FirebaseAnalytics.Param.END_DATE, itemEndDate);
bundle.putLong(FirebaseAnalytics.Param.NUMBER_OF_PASSENGERS, itemNumberOfPassengers);
bundle.putString(FirebaseAnalytics.Param.TRAVEL_CLASS, itemTravelClass);
bundle.putString(FirebaseAnalytics.Param.CURRENCY, itemCurrency);
bundle.putDouble(FirebaseAnalytics.Param.VALUE, itemValue);
bundle.putString("travel_type", itemTravelType);
mFirebaseAnalytics.logEvent(FirebaseAnalytics.Event.ECOMMERCE_PURCHASE, bundle);
Run Code Online (Sandbox Code Playgroud)

Firebase控制台:

ecommerce_purchase控制台

我的问题是:

  1. 为什么某些参数会自动添加到Firebase控制台上的begin_checkout参数报告中,而其他参数则不是?例如destination&start_date vs. item_id¤cy
  2. 为什么这些"自动添加"参数不会显示在我的仪表板上?此处仅显示item_id.
  3. 为什么单个参数"自动添加"到ecommerce_purchase的报告中?参数甚至没有显示在左侧的列表中,我需要自己输入参数的名称
  4. 自定义参数是否在不同事件之间共享 例如,我有自定义参数"travel_type".要在两个事件上显示此参数,我需要手动将此参数添加到两个事件,因此此参数对10个文本参数的全局限制计数两次?
  5. 假设使用预定义参数不应该计入自定义参数限制,我是完全错误的吗?例如,"item_id"是一个预定义的参数,但它确实计入全局配额,这是预期的行为吗?

(可能相关,但我的ecommerce_purchase事件会自动标记为转换事件,我无法更改此设置,而我已将begin_checkout手动设置为转换事件).

对于记录,这些事件和参数的数据确实很好地显示在Stream-and DebugViews中.

android firebase firebase-analytics

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