2

サービスを実装した Android アプリケーションを実行しています。このサービスは、いくつかの重要なイベントを開始します。私の主な活動では、この機能を実装しました:

@Override
    public boolean onKeyDown(int keyCode, KeyEvent evento) {
        if (keyCode == KeyEvent.KEYCODE_BACK) {

                stopService(new Intent(this, OpenCVService.class));
                finish();

            }
            return true;
        }
        return super.onKeyDown(keyCode, evento);
    }

停止しないとセキュリティ エラーが発生するため、キーが戻ってきたときにサービスを停止します。

問題は、一部のデバイスでエラーが再び表示されることがあることです。これは次のとおりです。

08-02 15:53:47.486: W/dalvikvm(14873): threadid=16: thread exiting with uncaught exception (group=0x40cad930)
08-02 15:53:47.486: E/AndroidRuntime(14873): FATAL EXCEPTION: Thread-373
08-02 15:53:47.486: E/AndroidRuntime(14873): java.lang.SecurityException: Injecting to another application requires INJECT_EVENTS permission
08-02 15:53:47.486: E/AndroidRuntime(14873):    at android.os.Parcel.readException(Parcel.java:1425)
08-02 15:53:47.486: E/AndroidRuntime(14873):    at android.os.Parcel.readException(Parcel.java:1379)
08-02 15:53:47.486: E/AndroidRuntime(14873):    at android.hardware.input.IInputManager$Stub$Proxy.injectInputEvent(IInputManager.java:356)
08-02 15:53:47.486: E/AndroidRuntime(14873):    at android.hardware.input.InputManager.injectInputEvent(InputManager.java:619)
08-02 15:53:47.486: E/AndroidRuntime(14873):    at android.app.Instrumentation.sendKeySync(Instrumentation.java:887)
08-02 15:53:47.486: E/AndroidRuntime(14873):    at android.app.Instrumentation.sendKeyDownUpSync(Instrumentation.java:898)
08-02 15:53:47.486: E/AndroidRuntime(14873):    at com.uvigo.gti.PictoDroidLite.Control3$1.run(Control3.java:268)

私の質問は、「このエラーを制御するにはどうすればよいですか?」です。

ありがとう

4

2 に答える 2

0

私もこれと戦ってきました。

私の特定のケース (おそらくあなたのケースも) では、テストの実行中にエミュレーターのロック画面が開いていたことが問題でした。

これは、エミュレーターのデータを消去した場合や、その他の状況で発生する傾向があります。

はい、とても簡単です。

それが役に立てば幸い!

于 2015-05-21T13:28:28.313 に答える