【问题标题】:Change Device Wallpaper in Python/Kivy在 Python/Kivy 中更改设备壁纸
【发布时间】:2019-11-20 23:01:16
【问题描述】:

我有一个简单的应用程序,除其他外,我需要这个应用程序能够更改 Android 设备的壁纸。

现在,我在网上四处查看,pyjnius 似乎是显而易见的选择。现在的问题是我不知道关于 java 的第一件事,但是快速的谷歌搜索会产生 WallpaperManager 作为我可以使用的东西。

问题来了:如何使用 pyjnius 在我的 kivy 应用程序上实现墙纸管理器功能。 再说一遍,不是 java 开发者,所以不要开枪

【问题讨论】:

    标签: python-3.x kivy pyjnius


    【解决方案1】:

    我也不懂 Java,但在检查了一些 Java 示例后,我生成了一个解决方案。不要忘记向您的 buildozer.spec 文件添加 SET_WALLPAPER 权限。您还需要获得存储权限才能使此示例正常运行。

    from jnius import autoclass, cast
    
    PythonActivity = autoclass('org.kivy.android.PythonActivity')
    
    try:
        Environment = autoclass("android.os.Environment")
        path = Environment.getExternalStorageDirectory().toString()
        
        currentActivity = cast('android.app.Activity', PythonActivity.mActivity)
        context = cast('android.content.Context', currentActivity.getApplicationContext())
        
        File = autoclass('java.io.File')
        file = File(path+"/test.jpg")
        
        BitmapFactory = autoclass('android.graphics.BitmapFactory')
        bitmap = BitmapFactory.decodeFile(file.getAbsolutePath())
        
        WallpaperManager = autoclass('android.app.WallpaperManager')
        manager = WallpaperManager.getInstance(context)
        manager.setBitmap(bitmap)
              
    except Exception as e:
        print(e)
    

    【讨论】:

      猜你喜欢
      • 1970-01-01
      • 2014-05-26
      • 1970-01-01
      • 1970-01-01
      • 2011-07-10
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      相关资源
      最近更新 更多