79452253

Date: 2025-02-19 17:28:46
Score: 3.5
Natty:
Report link

Is this topic still active? I need help with media projection. I don't know where I'm going wrong, in the logs I get media projection permission missing!

class MediaProjectionPermissionActivity : Activity() {

companion object {
    private const val REQUEST_MEDIA_PROJECTION = 1001
}

private lateinit var mediaProjectionManager: MediaProjectionManager
private var hasInitService = false

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

    mediaProjectionManager = getSystemService(Context.MEDIA_PROJECTION_SERVICE) as MediaProjectionManager

    // Pokreni zahtev za dozvolu
    val permissionIntent = mediaProjectionManager.createScreenCaptureIntent()
    startActivityForResult(permissionIntent, REQUEST_MEDIA_PROJECTION)
}

override fun onActivityResult(requestCode: Int, resultCode: Int, data: Intent?) {
    super.onActivityResult(requestCode, resultCode, data)

    Log.d("MediaProjectionPermission", "ResultCode: $resultCode, Data: $data")

    if (requestCode == REQUEST_MEDIA_PROJECTION) {
        if (resultCode == Activity.RESULT_OK && data != null) {
            Toast.makeText(this, "MediaProjection dozvoljen!", Toast.LENGTH_SHORT).show()

            // Inicijalizuj servis samo ako već nije inicijalizovan
            if (!hasInitService) {
                initService(resultCode, data)
                hasInitService = true
            }

        } else {
            Toast.makeText(this, "MediaProjection odbijen!", Toast.LENGTH_SHORT).show()
        }
    }

    finish() // Zatvori aktivnost nakon što je rezultat vraćen
}

private fun initService(resultCode: Int, data: Intent) {
    val screenshotServiceIntent = Intent(this, ScreenshotService::class.java).apply {
        putExtra("resultCode", resultCode)
        putExtra("data", data)
    }

    if (Build.VERSION.SDK_INT >= Build.VERSION_CODES.O) {
        // Ako je verzija Androida 12 (API 31) ili novija, koristimo foreground servis tip
        if (Build.VERSION.SDK_INT >= Build.VERSION_CODES.S) {
            screenshotServiceIntent.putExtra(
                "foregroundServiceType",
                1 // 1 je tip za "Media Projection"
            )
        }
        startForegroundService(screenshotServiceIntent)
    } else {
        startService(screenshotServiceIntent)
    }
}

}

Reasons:
  • Blacklisted phrase (0.5): I need
  • Blacklisted phrase (2.5): I need help
  • Long answer (-1):
  • Has code block (-0.5):
  • Contains question mark (0.5):
  • Starts with a question (0.5): Is this to
  • Low reputation (1):
Posted by: Maki Wien