2017-09-18 4 views
0

J'essaie d'utiliser MediaProjectionManager pour capturer une capture d'écran. La première étape que je prends est en train de taper des lignes de code suivantes:onActivityResult toujours obtenu -1 comme code de résultat

MediaProjectionManager projectionManager = (MediaProjectionManager)this.getContext().getSystemService(Context.MEDIA_PROJECTION_SERVICE); 
startActivityForResult(projectionManager.createScreenCaptureIntent(), 1); 

Alors je vous attendre à obtenir répondu avec la fonction onActivityResult(int requestCode, int resultCode, Intent data). Cependant, je trouve que le resultCode est toujours -1 et les données contiennent toujours des valeurs nulles et nulles. C'est comme s'il n'y avait pas de contenu d'image passé à onActivityResult.

Est-ce que quelqu'un sait ce qui a causé ce problème ou comment récupérer la capture d'écran à partir des données?

Toute aide est très appréciée!

Répondre

2

Jetez un coup d'œil à Activity.RESULT_OK. Donc, si vous obtenez un -1 dans votre résultat, vous êtes bon.

Suivant après avoir lu le MediaProjectionManager documentation

Je lis que vous avez besoin d'appeler getMediaProjection. Essayez d'appeler la méthode getMediaProjection dans votre onActivityResult et donnez-lui resultCode et resultData.

Pour obtenir un échantillon de base, regardez ce code =>MediaProjectionManager use

espérons que cela peut vous aider !!

+0

Merci beaucoup. Votre réponse fonctionne bien et me fait gagner beaucoup de temps. J'ai réussi à capturer une capture d'écran avec votre exemple de code. – user1870797

+0

Cool. Si vous pensez que c'est la bonne réponse, veuillez l'accepter. – olivejp

0

requestcode est toujours -1 si elle donne une sortie, vous devez vérifier resultcode et est 1.like ce

public void onActivityResult(int requestCode, int resultCode, Intent data) { 
    super.onActivityResult(requestCode, resultCode, data); 
    if (resultCode == RESULT_OK) { 
     switch (requestCode) { 
      case 1: 
        //do your stuff 
       break; 


     } 
    } 
}