尝试将Unity ADS SDK集成到Python Kivy应用程序中

问题描述

我正在尝试使用Pyjnius在我的Kivy应用程序中集成Unity广告的Java代码,但是由于我不熟悉Java(我打算在不久的将来学习),所以遇到了一些困难。这是Unity ADS自己的SDK Java示例:

import com.unity3d.ads.IUnityAdsListener;
import com.unity3d.ads.UnityAds;

public class ShowInterstitialAds extends AppCompatActivity implements View.OnClickListener,IUnityAdsListener {

    private String unityGameID = "1234567";
    private Boolean testMode = true;
    private String placementId = "video";

    @Override
    protected void onCreate (Bundle savedInstanceState) {
        super.onCreate (savedInstanceState);
        setContentView (R.layout.activity_main);
        // Declare a new listener:
        final UnityAdsListener myAdsListener = new UnityAdsListener ();
        // Add the listener to the SDK:
        UnityAds.addListener(myAdsListener);
        // Initialize the SDK:
        UnityAds.initialize (this,unityGameID,testMode);
    }

    // Implement a function to display an ad if the Placement is ready:
    public void displayInterstitialAd () {
        if (UnityAds.isReady (placementId)) {
            UnityAds.show (this,placementId);
        }
    }

    // Implement the IUnityAdsListener interface methods:
    private class UnityAdsListener implements IUnityAdsListener {

        @Override
        public void onUnityAdsReady (String placementId) {
            // Implement functionality for an ad being ready to show.
        }

        @Override
        public void onUnityAdsstart (String placementId) {
            // Implement functionality for a user starting to watch an ad.
        }

        @Override
        public void onUnityAdsFinish (String placementId,UnityAds.FinishState finishState) {
            // Implement functionality for a user finishing an ad.
        }

        @Override
        public void onUnityAdsError (UnityAds.UnityAdsError error,String message) {
            // Implement functionality for a Unity Ads service error occurring.
        }
    }
}

这是我到目前为止在Python中管理的内容

PythonActivity = autoclass("org.kivy.android.PythonActivity")
Unity_ads_listener = autoclass("com.unity3d.ads.IUnityAdsListener")
Unity_ads = autoclass("com.unity3d.ads.UnityAds")


class Unity_handler:
 
   def __init__(self,application_id,test_m):
      self.app_id = application_id
      self.test_mode = test_m

   def init_unity(self):
     testmode=True
     new_ad_listener = UnityAdsListener()
     Unity_ads.addListener(new_ad_listener)
     Unity_ads.initialize(self,self.app_id,testmode)

   def show_ad(self,id_num):
   
     #show interstial ads
     self.inter_id = id_num
     if Unity_ads.isReady(self.inter_id):
          Unity_ads.show(self,self.inter_id)


#####################################################################################################################################

class UnityAdsListener(PythonJavaClass):
    __javainterfaces__= ['com/unity3d/ads/IUnityAdsListener']  

    def __init__(self):
                super(UnityAdsListener,self).__init__()
                #self.callback = callback

    @java_method('Ljava/lang/String;')
    def onUnityAdsReady(self,inter_id):
       pass        

    @java_method('Ljava/lang/String;')   
    def onUnityAdsstart(self,inter_id):
       pass

    @java_method('Ljava/lang/String;(Ljava/lang/String;)')
    def onUnityAdsFinish(self,inter_id,un_f):
       pass

    @java_method('(Ljava/lang/String;)Ljava/lang/String;')
    def onUnityAdsError(self,error,message):
       pass

任何帮助将不胜感激

解决方法

暂无找到可以解决该程序问题的有效方法,小编努力寻找整理中!

如果你已经找到好的解决方法,欢迎将解决方案带上本链接一起发送给小编。

小编邮箱:dio#foxmail.com (将#修改为@)