小编Bri*_*per的帖子

API 26上的覆盖权限错误

当我的应用程序尝试绘制系统覆盖图时,它会崩溃并告诉我2010窗口类型的权限被拒绝.但是,我要求用户ACTION_MANAGE_OVERLAY_PERMISSION在首次安装时授予教程活动.此外,这只发生在API 26上.我测试了所有其他支持的SDK,我能够绘制一个没有崩溃或错误的叠加层.

我用过

Settings.canDrawOverlay(context);
Run Code Online (Sandbox Code Playgroud)

它返回true.因此,似乎系统知道授予许可但问题仍然存在.

这是覆盖代码:

    LayoutInflater inflater = (LayoutInflater) mContext.getSystemService(LAYOUT_INFLATER_SERVICE);
    inflater.inflate(R.layout.view_driving, mRelativeLayout);

    WindowManager.LayoutParams layoutParams = new WindowManager.LayoutParams(
            WindowManager.LayoutParams.MATCH_PARENT,
            WindowManager.LayoutParams.MATCH_PARENT,
            WindowManager.LayoutParams.TYPE_SYSTEM_ERROR,
            WindowManager.LayoutParams.FLAG_NOT_FOCUSABLE | WindowManager.LayoutParams.FLAG_LAYOUT_NO_LIMITS,
            PixelFormat.TRANSLUCENT);

    if(Build.VERSION.SDK_INT >= Build.VERSION_CODES.LOLLIPOP){
        layoutParams.flags = WindowManager.LayoutParams.FLAG_TRANSLUCENT_STATUS;
    } else{
        layoutParams.flags = WindowManager.LayoutParams.FLAG_TRANSLUCENT_STATUS;
    }

    if(Build.VERSION.SDK_INT >= Build.VERSION_CODES.O){
        layoutParams.flags = WindowManager.LayoutParams.TYPE_APPLICATION_OVERLAY;
    }

    int uiOptions = View.SYSTEM_UI_FLAG_LAYOUT_STABLE
            | View.SYSTEM_UI_FLAG_LAYOUT_HIDE_NAVIGATION
            | View.SYSTEM_UI_FLAG_LAYOUT_FULLSCREEN
            | View.SYSTEM_UI_FLAG_HIDE_NAVIGATION // hide nav bar
            | View.SYSTEM_UI_FLAG_FULLSCREEN // hide status bar
            | View.SYSTEM_UI_FLAG_IMMERSIVE_STICKY;

    layoutParams.screenOrientation = ActivityInfo.SCREEN_ORIENTATION_PORTRAIT;

    mRelativeLayout.setSystemUiVisibility(uiOptions);

    if(Settings.canDrawOverlays(mContext)){
        WindowManager windowManager = (WindowManager) mContext.getSystemService(WINDOW_SERVICE);
        windowManager.addView(mRelativeLayout, layoutParams); …
Run Code Online (Sandbox Code Playgroud)

permissions android android-8.0-oreo

5
推荐指数
0
解决办法
1625
查看次数

已经定义了运算符重载的错误

调试我的程序时,我不断收到这两个错误:

main.obj:错误LNK2005:"class std :: basic_istream>&__cdecl operator >>(class std :: basic_istream>&,class Complex&)"(?? 5 @ YAAAV?$ basic_istream @ DU?$ char_traits @ D @ std @@@ std @@ AAV01 @ AAVComplex @@@ Z)已在Imaginary.obj中定义

1> main.obj:错误LNK2005:"class std :: basic_ostream>&__ cdecl operator <<(class std :: basic_ostream>&,class complex const&)"(?? 6 @ YAAAV?$ basic_ostream @ DU?$ char_traits @ D @ std @@@ std @@ AAV01 @ ABVComplex @@@ Z)已在Imaginary.obj中定义

我已经尝试重新启动我的项目,以确保我创建了一个控制台应用程序,而不是偶然的事情,但这不起作用.任何方向将不胜感激.

这是我的代码:

imaginary.h

#ifndef imaginary_h_
#define imaginary_h_

#include <iostream>

class Complex
{    
    friend std::ostream & operator << (std::ostream& …
Run Code Online (Sandbox Code Playgroud)

c++ class operator-overloading complex-numbers

3
推荐指数
2
解决办法
4061
查看次数

在c#中保留一个随机数

我的程序设置为让用户猜测1到10之间的整数.如果用户猜测太低或高,他们会收到通知并可以再试一次.

我遇到的问题是,当用户猜错时,会生成一个新的随机数.因此,基本上用户在错误之后永远不会尝试猜测相同的数字.

我需要这样做,以便当用户猜错时,他们仍在尝试猜测相同的值.

这是我的代码:

namespace IntegerGame
{
    public partial class guessGame : Form
    {
        int num1;
        int num2;

        public guessGame()
        {
            InitializeComponent();
        }

        private void textBox1_TextChanged(object sender, EventArgs e)
        {
        }

        private void guessButton_Click(object sender, EventArgs e)
        {
            Random rnd1 = new Random();
            num1 = rnd1.Next(1, 10);

            if (int.TryParse(textBox1.Text, out num2))
            {
                if (num2 < 0 || num2 > 10)
                {
                    textBox1.Clear();
                    MessageBox.Show("Please enter a number between 1 and 10");
                }
                else
                {
                    if (num2 > num1)
                    {
                        textBox1.Clear();
                        MessageBox.Show("You …
Run Code Online (Sandbox Code Playgroud)

c# random winforms

-2
推荐指数
1
解决办法
1579
查看次数