Хранилище ActivityResultLauncher завершается с ошибкой при помещении в другой классAndroid

Форум для тех, кто программирует под Android
Ответить Пред. темаСлед. тема
Anonymous
 Хранилище ActivityResultLauncher завершается с ошибкой при помещении в другой класс

Сообщение Anonymous »

Я знаю, что подобные вопросы задавались раньше, но ни один из их ответов не может решить мой вопрос.
Я хочу предоставить своему приложению разрешение «Управление внешним хранилищем», и я нашел полезный пример в Google (https:/ /medium.com/@kezzieleo/manage-external-storage-permission-android-studio-java-9c3554cf79a7). Он работает, когда я помещаю его в MainActivity, но происходит сбой, когда я добавляю другой класс с показанным сообщением об ошибке:

Код: Выделить всё

Attempt to invoke virtual method 'android.app.ActivityThread$ApplicationThread android.app.ActivityThread.getApplicationThread()' on a null object reference
Я попытался предоставить разрешение, нажав кнопку:

Код: Выделить всё

access_to_storage_button.setOnClickListener(new View.OnClickListener()
{
@RequiresApi(api = Build.VERSION_CODES.R)
@Override
public void onClick(View v)
{
CheckPermission checkPermission =
new CheckPermission(getApplicationContext(), MainActivity.this);
checkPermission.askPermissionBox(new String[]
{Manifest.permission.MANAGE_EXTERNAL_STORAGE}, MANAGE_EXTERNAL_STORAGE);
});
И он вызывает класс CheckPermission:

Код: Выделить всё

public class CheckPermission extends AppCompatActivity implements ActivityCompat.OnRequestPermissionsResultCallback
{
private Context mycontext;
private Activity myactivity;

CheckPermission(Context context, Activity activity)
{
this.myactivity = activity;
this.mycontext = context;
}

void askPermissionBox(String[] permissionArr, int requestCode)
{
Intent intent = new Intent();
intent.setAction(Settings.ACTION_MANAGE_APP_ALL_FILES_ACCESS_PERMISSION);

Uri uri = Uri.fromParts("package", myactivity.getPackageName(), null);
intent.setData(uri);
storageActivityResultLauncher.launch(intent);
}

private ActivityResultLauncher  storageActivityResultLauncher =
registerForActivityResult(new ActivityResultContracts.StartActivityForResult(),
new ActivityResultCallback()
{
@Override
public void onActivityResult(ActivityResult result)
{
// Android is 11 (R) or above
if (Environment.isExternalStorageManager())
{
// Manage External Storage Permissions Granted
Log.d("TAG", "onActivityResult: Manage External Storage Permissions Granted");
}
else
{
Toast.makeText(myactivity, "Storage Permissions Denied", Toast.LENGTH_SHORT).show();
}
}
});
Этот метод работает, когда я помещаю его в MainActivity, но происходит сбой, когда я помещаю его в другой класс. Я пытался сослаться на этот пример (java.lang.NullPointerException: попытка вызвать виртуальный метод android.app.ActivityThread$ApplicationThread), но он не соответствует моим требованиям, поскольку я не могу установить

Код: Выделить всё

myActivity.storageActivityResultLauncher.launch(intent);
Что мне сделать, чтобы устранить проблему?

Подробнее здесь: https://stackoverflow.com/questions/791 ... ther-class
Реклама
Ответить Пред. темаСлед. тема

Быстрый ответ

Изменение регистра текста: 
Смайлики
:) :( :oops: :roll: :wink: :muza: :clever: :sorry: :angel: :read: *x)
Ещё смайлики…
   
К этому ответу прикреплено по крайней мере одно вложение.

Если вы не хотите добавлять вложения, оставьте поля пустыми.

Максимально разрешённый размер вложения: 15 МБ.

  • Похожие темы
    Ответы
    Просмотры
    Последнее сообщение
  • Изображение сжимается при помещении внутри кнопки customtkinter
    Anonymous » » в форуме Python
    0 Ответы
    40 Просмотры
    Последнее сообщение Anonymous
  • Какая разница при помещении заголовка в файл pch? [дубликат]
    Anonymous » » в форуме IOS
    0 Ответы
    15 Просмотры
    Последнее сообщение Anonymous
  • Позиционирование в помещении без сторонних устройств, таких как маяки
    Anonymous » » в форуме Android
    0 Ответы
    10 Просмотры
    Последнее сообщение Anonymous
  • Ошибка базы данных в помещении «База данных заблокирован».
    Anonymous » » в форуме Android
    0 Ответы
    33 Просмотры
    Последнее сообщение Anonymous
  • Конвертировать веб -сайт для мобильных устройств в помещении
    Anonymous » » в форуме Html
    0 Ответы
    5 Просмотры
    Последнее сообщение Anonymous

Вернуться в «Android»