onActivityResult не вызывается после вызова startActivityForResult - PullRequest
0 голосов
/ 24 марта 2019

У меня есть активность, чья функциональность заключается в том, чтобы делать скриншот текущего экрана. Вот как метод onCreate выглядит для этого действия:

    override fun onCreate(savedInstanceState: Bundle?) {
    super.onCreate(null)

    mProjectionManager = getSystemService(Context.MEDIA_PROJECTION_SERVICE) as MediaProjectionManager
    startActivityForResult(mProjectionManager.createScreenCaptureIntent(), REQUEST_CODE)
}

Тогда прямо под ним у меня есть метод onActivityResult, который выглядит следующим образом:

  override fun onActivityResult(requestCode: Int, resultCode: Int, data: Intent) {
    if (requestCode == REQUEST_CODE) {
        sMediaProjection = mProjectionManager.getMediaProjection(resultCode, data)

        val externalFilesDir = getExternalFilesDir(null)
        if (externalFilesDir != null) {
            STORE_DIRECTORY = externalFilesDir.absolutePath + "/screenshots/"
            val storeDirectory = File(STORE_DIRECTORY)
            if (!storeDirectory.exists()) {
                val success = storeDirectory.mkdirs()
                if (!success) {
                    Log.e("TAGE", "failed to create file storage directory.")
                    return
                }
            }
        } else {
            Log.e("TAG", "failed to create file storage directory, getExternalFilesDir is null.")
            return
        }

        // display metrics
        val metrics = resources.displayMetrics
        mDensity = metrics.densityDpi
        mDisplay = windowManager.defaultDisplay

        // create virtual display depending on device width / height
        createVirtualDisplay()

        // register orientation change callback
        mOrientationChangeCallback = OrientationChangeCallback(this)
        if (mOrientationChangeCallback.canDetectOrientation()) {
            mOrientationChangeCallback.enable()
        }

        // register media projection stop callback
        sMediaProjection.registerCallback(MediaProjectionStopCallback(), mHandler)
    }
}

Вот как выглядит упражнение в Манифесте:

        <activity android:name=".ScreenshotActivity"
              android:theme="@android:style/Theme.NoDisplay"
              android:excludeFromRecents="true"
              android:screenOrientation="portrait">
    </activity>

Моя проблема в том, что функция onActivityResult никогда не вызывается, я пытался добавить точки останова в эту функцию, но они никогда не были достигнуты.

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...