Загрузка данных


from jnius import autoclass
from kivy.utils import platform
import time

if platform == "android":
    # Импортируем необходимые Java классы
    PythonActivity = autoclass('org.kivy.android.PythonActivity')
    Uri = autoclass('android.net.Uri')
    RingtoneManager = autoclass('android.media.RingtoneManager')
    Settings = autoclass('android.provider.Settings') 
    System = autoclass('java.lang.System')
    def check_and_request_permission():
        current_api = int(Build.VERSION.SDK_INT) if 'Build' in globals() else 0
        
        # Для Android 6.0+ нужен особый подход
        if current_api >= 23:
            # Проверяем, можем ли мы писать настройки
            can_write = Settings.System.canWrite(PythonActivity.mActivity)
            
            if not can_write:
                # Если нет прав - открываем экран настроек нашего приложения
                intent = autoclass('android.content.Intent')(
                    Settings.ACTION_MANAGE_WRITE_SETTINGS
                )
                data = Uri.parse("package:" + PythonActivity.mActivity.getPackageName())
                intent.setData(data)
                PythonActivity.mActivity.startActivity(intent)
                return False 
        return True
def set_custom_ringtone(file_path):
    try:
        # Преобразуем строковый путь в объект java.io.File
        File = autoclass('java.io.File')
        file_obj = File(file_path)
        
        # Получаем ContentResolver для работы с медиа
        context = PythonActivity.mActivity.getApplicationContext()
        content_resolver = context.getContentResolver()
        
        # Вызываем системный метод установки мелодии
        RingtoneManager.setActualDefaultRingtoneUri(
            context,
            RingtoneManager.TYPE_RINGTONE,
            Uri.fromFile(file_obj)
        )
        
        time.sleep(5)
        return True
        
    except Exception as e:
        print(f"Ошибка при смене рингтона: {e}")
        return False
check_and_request_permission()
set_custom_ringtone("/storage/emulated/0/WhosePhoneIsRinging.m4a")