Salut,
J'ai un widget avec un bouton. Ce bouton permet de démarrer une activity. Dans cette activity, j'ai créé un bouton "test" qui permet de créer un document via ce code :
Et ma méthode onActivityResult :
Code : Sélectionner tout - Visualiser dans une fenêtre à part
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15 final Button testButton = findViewById(R.id.button_test); test.setOnClickListener(new View.OnClickListener() { @Override public void onClick(View v) { ActivityCompat.requestPermissions(WidgetActivity.this, new String[]{Manifest.permission.WRITE_EXTERNAL_STORAGE}, Utils.MY_PERMISSIONS_REQUEST_WRITE_EXTERNAL_STORAGE); String fileName = "test.txt"; Intent exportIntent = new Intent(Intent.ACTION_CREATE_DOCUMENT); exportIntent.addCategory(Intent.CATEGORY_OPENABLE); exportIntent.setType("text/plain"); exportIntent.putExtra(Intent.EXTRA_TITLE, fileName); startActivityForResult(exportIntent, FILE_EXPORT_REQUEST_CODE); } });
onActivityResult n'est jamais exécuté. Pire que ça, c'est mon MainActivity qui se lance mais sans recevoir d'intent, comme en cas d'instabilité.
Code : Sélectionner tout - Visualiser dans une fenêtre à part
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28 @Override public void onActivityResult(int requestCode, int resultCode, Intent data) { super.onActivityResult(requestCode, resultCode, data); if (resultCode != RESULT_OK) return; switch (requestCode) { case FILE_EXPORT_REQUEST_CODE: if (data != null) { Uri uri = data.getData(); if (uri != null) { Context c = WidgetActivity.this; ParcelFileDescriptor pfd = null; try { pfd = c.getContentResolver().openFileDescriptor(uri, "w"); Preferences.export(mAppWidgetId, pfd.getFileDescriptor(), WidgetActivity.this); } catch (FileNotFoundException e) { e.printStackTrace(); } } } break; } }
J'ai utilisé ce même code dans une appli de test créé pour l'occasion. ça fonctionne parfaitement.
Je ne sais plus où chercher...
Partager