可以将应用程序付款的Manifest Receiver转移到Java代码吗?

时间:2012-05-11 07:51:41

标签: android air broadcastreceiver android-manifest air-native-extension

Google针对应用内付款的示例建议添加清单条目以接收付款确认。但是在Native Extension for AIR中,接收器不会被发现是一个不同的包。所以我将接收器部分移动到代码如下

final IntentFilter filter = new IntentFilter("com.android.vending.billing.IN_APP_NOTIFY");
filter.addAction("com.android.vending.billing.RESPONSE_CODE");
filter.addAction("com.android.vending.billing.PURCHASE_STATE_CHANGED");

a.registerReceiver(billingReceiver, filter);   

但服务的onreceive()方法永远不会被调用。

是否有不同的方式注册活动以获得接收方呼叫?

1 个答案:

答案 0 :(得分:2)

根据一些参考站点,在代码中添加计费接收器不起作用。因此将其移动到清单文件,删除了包并从根目录中引用它。所以问题就解决了。

对于那些正在尝试的人来说,

AIR app的Manifest看起来会像这样!

<android>
    <manifestAdditions>

      <![CDATA[
      <manifest android:installLocation="auto">
       <uses-permission android:name="com.android.vending.BILLING" />
        <uses-permission android:name="android.permission.INTERNET" />
        <uses-permission android:name="android.permission.RECORD_AUDIO"/>
      <uses-permission android:name="android.permission.VIBRATE"/>

        <application>

        <service android:name="<package>.BillingService" />

        <receiver android:name="<package>.BillingReceiver">
            <intent-filter>
                <action android:name="com.android.vending.billing.IN_APP_NOTIFY" />
                <action android:name="com.android.vending.billing.RESPONSE_CODE" />
                <action android:name="com.android.vending.billing.PURCHASE_STATE_CHANGED" />
            </intent-filter>
        </receiver>

      </application>


</manifest>]]>
    </manifestAdditions>
  </android>