【问题标题】:How to Allow notification sound programmatically in Xiomi devices如何在小米设备中以编程方式允许通知声音
【发布时间】:2021-05-25 12:43:27
【问题描述】:

通知声音设置在小米设备中始终禁用。查看下图。

我想以编程方式启用声音。发现了类似的 stackoverflow 问题,但没有任何帮助。

设备:红米 Note 5 pro、红米 Note 9 pro

操作系统:MIUI 11、MIUI 12

注意:但它在所有其他设备上都可以正常工作。仅在小米设备中存在问题

【问题讨论】:

  • 您能否分享您的代码,该代码适用于除上述设备之外的所有其他设备?
  • 嗨,你找到了解决这个问题的方法吗?
  • @SerkanKOCAMAN 没有。如果你找到了请回答
  • 不,我想这不可能。
  • @SerkanKOCAMAN 哦,好的,谢谢

标签: android android-notifications


【解决方案1】:

2 个月前我正在寻找同样的问题,由于小米的限制,它变得更加困难,基本上你必须让你的应用程序在没有限制的情况下运行节省电池设置并让用户在哪里自动启动他必须点击切换按钮才能添加您的应用。

提示用户为您的应用禁用电池优化:

public class MainActivity extends AppCompatActivity {

    @Override
    protected void onStart()
   {
       String packageName = "com.example.myapp";
       PowerManager powerManager = (PowerManager)getApplicationContext().getSystemService(POWER_SERVICE);        
        if(Build.VERSION.SDK_INT >= Build.VERSION_CODES.M) {
            Intent i = new Intent();
            if (!powerManager.isIgnoringBatteryOptimizations(packageName)) {
                i.setAction(Settings.ACTION_REQUEST_IGNORE_BATTERY_OPTIMIZATIONS);
                i.setData(Uri.parse("package:" + packageName));
                startActivity(i);
            }
        }
    }
}

要让应用使用它,它还必须持有Manifest.permission.REQUEST_IGNORE_BATTERY_OPTIMIZATIONS permission


您还必须提示用户将您的应用添加到自动启动 (original credit):

String manufacturer = "xiaomi";
if (manufacturer.equalsIgnoreCase(android.os.Build.MANUFACTURER)) {
    //this will open auto start screen where user can enable permission for your app
    Intent intent1 = new Intent();
    intent1.setComponent(new ComponentName("com.miui.securitycenter", "com.miui.permcenter.autostart.AutoStartManagementActivity"));
    startActivity(intent1);
}

它现在应该可以工作了,如果有帮助,请告诉我!

【讨论】:

  • 对不起。我的问题是“允许声音”。这个答案不能解决我的问题。已验证。
猜你喜欢
  • 2020-04-27
  • 1970-01-01
  • 1970-01-01
  • 2022-08-12
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 2018-02-15
相关资源
最近更新 更多