Instabug,如果没有互联网访问,是否可以停用摇动以获得反馈?

Instabug, is it possible to deactivate the shake for feedback, if there is no internet access?

我有一个 networkStateReceiver,它会检查我是否有互联网。 如果我这样做,我会重新启动 instabug,如果没有,我想停用。我怎样才能做到这一点? 我尝试将其设置为 null,但它不起作用。

if(haveConnectedMobile || haveConnectedWifi){
            //TODO will need to make a queue, and go through all that queue
            PSLocationCenter.getInstance().initInstabug();
        }else{
            PSLocationCenter.getInstance().instabug = null;
        }

这是我的初始化:

public void initInstabug() {
    String[] feedbackArray = getResources().getStringArray(R.array.feedback);
    String randomStr = feedbackArray[new Random().nextInt(feedbackArray.length)];
    Instabug.DEBUG = true;
    instabug = Instabug.initialize(this)
            .setAnnotationActivityClass(InstabugAnnotationActivity.class)
            .setShowIntroDialog(true, PSTimelineActivity.class)
            .enableEmailField(true, false)
            .setEnableOverflowMenuItem(true)
            .setDebugEnabled(true)
            .setCommentRequired(true)
            .setPostFeedbackMessage(randomStr)
            .setPostBugReportMessage(randomStr) //TODO will be the post report message, random from array
            .setCommentFieldHint("Please describe what went wrong")
            .setPreSendingRunnable(new Runnable() {
                @Override
                public void run() {
                    String[] files = new String[2];
                    files[0] = Environment.getExternalStorageDirectory() + "/Passenger/passenger_log.txt";
                    files[1] = Environment.getExternalStorageDirectory() + "/Passenger/passenger_log2.txt";
                    Compress compress = new Compress(files, Environment.getExternalStorageDirectory() + "/Passenger/log.zip");
                    compress.zip(new CrudStateCallback() {
                        @Override
                        public void onResponse(String string) {
                            Log.i("", "ended making the archive");
                        }
                    });
                }
            })
            .attachFileAtLocation(Environment.getExternalStorageDirectory() + "/Passenger/log.zip");
}

您可以使用此代码禁用 Instabug 自动调用:

Instabug.getInstance().setInvocationEvent(IBGInvocationEvent.IBGInvocationEventNone)

这样就不会自动调用了。不过,这只会影响下一个 Activity(不是当前的)。您可以通过在当前 Activity 上调用 onPauseonResume 来强制停止并重新启动所有侦听器。 (不过,我们可能会很快解决这个问题,以便将此类更改应用于当前 运行 Activity)。

不要忘记在恢复互联网访问时也启用摇动调用事件。

请记住,Instabug SDK 已经缓存了所有报告,并将在下次应用启动时重新尝试发送它们,直到它们上传成功。

只是想 post 更新的答案。

较新的SDK改名了,现在可以通过以下代码禁用它:

Instabug.changeInvocationEvent(InstabugInvocationEvent.NONE)

注意,如果你想为整个应用程序禁用它,只需在你的 Application class

中调用此方法