You need to enable JavaScript to run this app.
优惠活动
大模型
产品
解决方案
定价
更多

Xamarin.Forms Android如何请求自启动与无限制电池优化权限?

应用后台保活与权限自动引导需求

我正在开发一款应用,要求服务在设备重启后仍能正常运行。目前已经实现了开机自启功能,也完成了存储、麦克风等基础权限的请求逻辑。但在小米等部分国产设备上,必须手动开启「自启动权限」和「无限制电池优化」才能确保服务稳定运行。现在希望实现自动引导用户开启这两项权限的功能,无需用户手动进入系统设置操作,未来还计划适配iOS平台。

已实现的开机自启代码

namespace Corporate_messenger.Droid.Broadcast
{
    [BroadcastReceiver(Name = "com.companyname.corporate_messenger.BootReceiver", Enabled = true, Exported = true)]
    [IntentFilter(new[] { Android.Content.Intent.ActionBootCompleted })]
    public class BootReceiver : BroadcastReceiver
    {
        private void Start1(Context context)
        {
            Intent mycallIntent = new Intent(context, typeof(MainActivity));

            mycallIntent.AddFlags(ActivityFlags.NewTask);

            Android.App.Application.Context.StartActivity(mycallIntent);
        }
        public override void OnReceive(Context context, Intent intent)
        {
            try
            {
                var intentService = new Intent(context, typeof(NotoficationService));
                if (Android.OS.Build.VERSION.SdkInt >= Android.OS.BuildVersionCodes.O)
                {
                    SpecialData.RestartResponse = true;
                    context.StartForegroundService(intentService);

                }
                else
                {
                    context.StartService(intentService);
                    // Flag_On_Off_Service = true;
                }
            }
            catch(Exception ex)
            {
                Log.Error("MyLog", ex.Message);

            }


        } // OnReceive
    }
}

已实现的基础权限请求代码

public async Task Permission()
{
    
    var PermissionsStrorage_Write = await Permissions.CheckStatusAsync<Permissions.StorageWrite>();

    var PermissionsInternet = await Permissions.CheckStatusAsync<Permissions.NetworkState>();

    var PermissionsStrorage_Read = await Permissions.CheckStatusAsync<Permissions.StorageRead>();

    var PermissionsRecord = await Permissions.CheckStatusAsync<Permissions.Microphone>();
    if (PermissionsInternet != PermissionStatus.Granted)
    {
        PermissionsInternet = await Permissions.RequestAsync<Permissions.NetworkState>();

    }
    
    if (PermissionsRecord != PermissionStatus.Granted)
    {
        PermissionsRecord = await Permissions.RequestAsync<Permissions.Microphone>();

    }
  
    if (PermissionsStrorage_Write != PermissionStatus.Granted && PermissionsStrorage_Read != PermissionStatus.Granted)
    {
        PermissionsStrorage_Write = await Permissions.RequestAsync<Permissions.StorageWrite>();
        PermissionsStrorage_Read = await Permissions.RequestAsync<Permissions.StorageRead>();
    }
    if (PermissionsStrorage_Write != PermissionStatus.Granted && PermissionsStrorage_Read != PermissionStatus.Granted)
    {
        return;
    }
}

内容的提问来源于stack exchange,提问作者Katya Appazova

相关产品推荐
方舟 Agent Plan

超全模态模型 × Harness 升级,最新支持 Deepseek-V4.1-Flash、GLM-5.3 系列、Doubao-Seedream-5.0-pro、Kimi-K3 (部分), 限时 9.9 元起

最近更新时间:2026.08.20 16:09:24