由于违反了开发者分发协议第4.4条,应用程序在Playstore上被拒绝

时间:2015-04-08 14:24:47

标签: android html5 webview youtube

我刚收到以下电子邮件:

  
    

这是一个通知,您的应用程序提交,Chami浏览器,包ID com.chami.browser,已被拒绝。如果这     提交是对已发布版本的现有应用程序的更新     此更新之前仍可在Google Play上使用。

  
     

请解决下面描述的问题,然后提交更新   你的改变。

     

拒绝原因:违反开发人员第4.4条   分销协议。

     

经过定期审核后,我们确定您的应用已下载,   货币化或以其他方式访问YouTube视频违反了   YouTube服务条款或YouTube API服务条款。访问   未经授权的内容,产品或服务是   违反开发者分发协议,是不允许的   在Google Play上。

     

跟踪所有提交拒绝。由于反复拒绝   政策违规将导致应用暂停,此时此举   应用程序将被视为违反开发人员良好信誉的罢工   帐户,不再在Google Play上播放。

     

此通知还可作为您的其他应用的通知   目录。您可以避免将来提交拒绝和/或应用   通过立即确保您的目录中没有其他应用程序暂停   违反(但不限于)上述政策。之前   发布应用程序,请确保您的应用程序符合   开发者分发协议和内容政策。

     

如果您认为我们错误地做出了这个决定,您可以访问   此Google Play帮助中心文章。

     

Google Play团队

他们在开发者控制台中为我提供了另外一个附加信息。他们认为我违反了Youtube或Youtube API的条款和条件。 我真的不明白这一点。我的应用不使用Youtube API。我的应用程序允许在webview中查看HTML5视频并在全屏显示。这是通过遵循WebChromeClient的实现来实现的。

 class mojWebChromeClient extends WebChromeClient {
        private View nacitavanieVideaView;
        private FrameLayout vlastnyViewFrameLayout = (FrameLayout) findViewById(R.id.FLvideo);

        @Override
        public void onShowCustomView(View view, int requestedOrientation, CustomViewCallback callback) {
            onShowCustomView(view, callback);
        }

        @Override
        public void onShowCustomView(View view,CustomViewCallback callback) {

            if (mojVlastnyView != null) {
                callback.onCustomViewHidden();
                return;
            }
            mojVlastnyView = view;
            net.setVisibility(View.GONE);
            findViewById(R.id.PBnacitavanie).setVisibility(View.GONE);
            findViewById(R.id.RLOvladaciPanel).setVisibility(View.GONE);
            vlastnyViewFrameLayout.setVisibility(View.VISIBLE);
            vlastnyViewFrameLayout.addView(view);
            getWindow().addFlags(WindowManager.LayoutParams.FLAG_FULLSCREEN);
            getWindow().clearFlags(WindowManager.LayoutParams.FLAG_FORCE_NOT_FULLSCREEN);
            vlastnyViewCallback = callback;
        }

        @Override
        public View getVideoLoadingProgressView() {


            if (nacitavanieVideaView == null) {
                LayoutInflater inflater = LayoutInflater.from(HlavnaAktivita.this);
                nacitavanieVideaView = inflater.inflate(R.layout.nacitavanie_videa, null);
            }
            return nacitavanieVideaView;
        }

        @Override
        public void onHideCustomView() {
            super.onHideCustomView();
            if (mojVlastnyView == null)
                return;

            net.setVisibility(View.VISIBLE);
            findViewById(R.id.PBnacitavanie).setVisibility(View.VISIBLE);
            findViewById(R.id.RLOvladaciPanel).setVisibility(View.VISIBLE);
            vlastnyViewFrameLayout.setVisibility(View.GONE);

            mojVlastnyView.setVisibility(View.GONE);

            vlastnyViewFrameLayout.removeView(mojVlastnyView);
            vlastnyViewCallback.onCustomViewHidden();


    getWindow().addFlags(WindowManager.LayoutParams.FLAG_FORCE_NOT_FULLSCREEN);
                getWindow().clearFlags(WindowManager.LayoutParams.FLAG_FULLSCREEN);
                mojVlastnyView = null;
            }
}

然后我只是在onCreate()上的Webview上应用WebChromeClient:

 WebView net = (WebView) findViewById(R.id.net);
net.setWebChromeClient(new mojWebChromeClient());

1 个答案:

答案 0 :(得分:1)

自从推出Youtube API以来,你就会使用sdk。它只是更好。通过webview展示广告在youtube上投放的视频,您无法控制这些广告。只需使用youtube sdk for android

另外,请阅读youtube.com上的TOS