小编Ted*_*Ted的帖子

SmtpClient非常慢 - 大约2秒发送一封非常小的电子邮件

我使用SmtpClient发送简单的电子邮件.

电子邮件大约25个字符(明文)所以它的小.

然而,它需要SmtpClient大约2000毫秒才能发送其中一个.我没有为每个发送创建SmtpClient - 这是在程序启动时创建的,所以唯一要做的就是:

DateTime start = DateTime.Now;

MailMessage oMsg = new MailMessage();
// TODO: Replace with sender e-mail address.
oMsg.From = new MailAddress(settings._Username);
oMsg.To.Add(new MailAddress(emailEvent._ContactItemToUse.Data));
oMsg.Subject = emo._Subject;
oMsg.BodyEncoding = Encoding.UTF8;
oMsg.IsBodyHtml = emo._IsHtmlText;
oMsg.Body = emo._Text;
client.Send(oMsg);
TimeSpan timeWasted = DateTime.Now.Subtract(start); // between 1000-2000 ms
Run Code Online (Sandbox Code Playgroud)

这当然非常糟糕,我无法弄清楚原因.你能?=)

.net c# email smtpclient

7
推荐指数
2
解决办法
1万
查看次数

.NET Maui:矢量/SVG 启动画面未正确调整大小

测试为毛伊岛应用程序添加自定义启动屏幕,我读了一些Microsoft 文档,上面写着

在构建时,启动屏幕图像的大小会调整为适合目标平台和设备的正确大小。然后,调整大小的启动屏幕将添加到您的应用程序包中。

然而,这不是我所看到的;相反,图像被屏幕覆盖并且未被调整。重现:

  1. 安装 VS Studio 2022 17.1.0 Preview 3.0 和最新的 MAUI
  2. 创建新的 .NET Maui App(预览)项目
  3. 添加一个 SVG 文件,我使用了这个: https: //publicdomainvectors.org/download.php?file =liftarn_Black_horse.svg 并将其放入Resources/Images
  4. 在VS中将文件重命名为“horse.svg”(否则你会得到一个构建错误)
  5. 在Properties中,将Build Action设置为MauiSplashScreen;这将在 csproj 文件中创建一个新条目
  6. 我在 csproj 文件中有两个 <MauiSplashScreen ...> 标签,因此我手动删除了前一个标签(注意:存在一个错误,因为 svg 的“属性”面板不再显示MauiSplashScreen
  7. 在模拟器上运行应用程序,我使用 Pixel 2 Android Pie 9

当splash出现的时候,它没有适应屏幕尺寸,所以被封顶了。看起来像这样(我添加了红色背景):

在此输入图像描述

但整个 SVG 图像看起来像:

在此输入图像描述

所以我想知道上面这句话是什么意思?在我看来,我必须以某种方式手动缩小 SVG/图像以适应屏幕?

更新

我用视口替换 svg 中的高度和宽度,但结果是相同的:

在此输入图像描述

<svg 
    xmlns:rdf="http://www.w3.org/1999/02/22-rdf-syntax-ns#" 
    xmlns="http://www.w3.org/2000/svg" 
    xmlns:cc="http://web.resource.org/cc/" 
    xmlns:dc="http://purl.org/dc/elements/1.1/" 
    xmlns:sodipodi="http://inkscape.sourceforge.net/DTD/sodipodi-0.dtd" 
    xmlns:svg="http://www.w3.org/2000/svg" 
    id="svg1322" sodipodi:version="0.32"
    viewBox="0 0 680 640" 
    ....

---

Run Code Online (Sandbox Code Playgroud)

.net c# svg maui .net-maui

7
推荐指数
1
解决办法
4986
查看次数

ReactNative 和 PermissionsAndroid 0.71 与 0.70:POST_NOTIFICATION 与 POST_NOTIFICATIONS 和 IllegalArgumentException

在https://reactnative.dev/docs/0.70/permissionsandroid上,它显示此权限适用于版本 0.70:

POST_NOTIFICATION: 'android.permission.POST_NOTIFICATION'
Run Code Online (Sandbox Code Playgroud)

https://reactnative.dev/docs/permissionsandroid(版本 0.71)上,它显示相同的权限在末尾带有“S”:

POST_NOTIFICATIONS: 'android.permission.POST_NOTIFICATIONS'
Run Code Online (Sandbox Code Playgroud)

这是拼写错误吗?

在任何一种情况下,如果我使用上述任何一种,应用程序都会崩溃

IllegalArgumentException:权限为 null 在 android.app.ContextImpl.checkSelfPermission(ContextImpl.java:2222) 在 android.content.ContextWrapper.checkSelfPermission(ContextWrapper.java:931) 在 com.facebook.react.modules.permissions.PermissionsModule.requestPermission( PermissionsModule.java:105) 在 java.lang.reflect.Method.invoke(Method.java)

这样做时:

async requestPermission() {
    try {
      const granted = await PermissionsAndroid.request(
        PermissionsAndroid.PERMISSIONS.POST_NOTIFICATION, // or POST_NOTIFICATIONS
        {
          'title': 'TEST',
          'message': I18n.t('permissions.locationPermissionMessage')
        }
      )
      if (granted === PermissionsAndroid.RESULTS.GRANTED) {
        
      } else {
      }
    } catch (err) {
     
    }
  }
Run Code Online (Sandbox Code Playgroud)

权限在AndroidManifest文件中,已确认。

更新

在build.gradle中设置compileSdkVersion = 33和targetSdkVersion = 33:

在此输入图像描述

requestPermission 的代码看起来不像(我使用的是 0.70.5):

在此输入图像描述

崩溃记录如下:

在此输入图像描述

permissions android react-native

7
推荐指数
1
解决办法
4591
查看次数

样式,minHeight/maxHeight:我无法让maxHeight覆盖主题minHeight

我认为更多的"全球"风格总是被更多的"本地"风格所覆盖.例如,如果我重新定义所有按钮以使textSize = 40dip(将该样式应用为应用程序的主题),然后将另一个样式应用于显示textSize = 10dip的特定按钮,则该特定按钮应获得10dip textSize.

这通常就是它的工作方式.但不是说maxHeight.这是场景:

在我的styles.xml中,我有一个Style,我继承默认Button并更改textSize和minHeight,然后另一个Style设置其他值(但也从Button继承),如下所示:

<?xml version="1.0" encoding="utf-8"?>
<resources>
<style name="Button" parent="@android:style/Widget.Button">
    <item name="android:textSize">26dip</item>
    <item name="android:minHeight">60dip</item>
</style>

<style name="ButtonHeader" parent="@android:style/Widget.Button">
    <item name="android:textSize">18dip</item>
    <item name="android:minWidth">70dip</item>
    <item name="android:maxHeight">10dip</item>
</style>
</resources>    
Run Code Online (Sandbox Code Playgroud)

我将第一个Style应用为我的Activity的主题,使所有按钮变大(minHeight = 60dip).但我有一个"标题"(我有一些其他按钮),我不希望有60dip的minHeight,对于那些我想使用ButtonHeader的按钮,将maxHeight设置为10dip.

在我的header.xml中,它看起来像这样:

<Button style="@style/ButtonHeader" android:text="UPP" android:id="@+id/Header_Button_UPP" android:layout_width="wrap_content" android:layout_height="wrap_content" ></Button>
<Button style="@style/ButtonHeader" android:text="ALT" android:id="@+id/Header_Button_ALT" android:layout_width="wrap_content" android:layout_height="wrap_content" ></Button>
<Button style="@style/ButtonHeader" android:text="NAV" android:id="@+id/Header_Button_NAV" android:layout_width="wrap_content" android:layout_height="wrap_content" ></Button>
<Button style="@style/ButtonHeader" android:text="HIS" android:id="@+id/Header_Button_HIS" android:layout_width="wrap_content" android:layout_height="wrap_content" ></Button>
Run Code Online (Sandbox Code Playgroud)

我特别设计了按钮的样式,覆盖了"全局"主题.它适用于某些部分; 这些标题按钮的textSize正确设置为18dip,但忽略maxHeight - 这些按钮的高度也增加到60dip.

如果我,在ButtonHeader的样式中,设置android:minHeight ="100dip",标题中的按钮将增加到100dip,覆盖主题.但是,如上所述,当我有android:maxHeight时,没有任何反应.

我错过了什么?

android

6
推荐指数
1
解决办法
9630
查看次数

通过意图启动活动很慢/显示相当大的延迟 - 为什么?

我有一个非常简单的MainActivity,并从该Activity开始另一个Activity(使用主题Dialog,因此它浮动在MainActivity之上.

问题是在第二个Activity出现之前总会有延迟.我要说它显示需要将近1秒,并且在第二个Activity中根本没有代码.第二个Activity中唯一的代码是:

package MyPackage;

import android.app.Activity;
import android.os.Bundle;
import android.widget.ArrayAdapter;
import android.widget.ListView;
import android.widget.TextView;

public class JobViewActivity extends Activity {

    @Override
    protected void onCreate(android.os.Bundle savedInstanceState) 
    {
        super.onCreate(savedInstanceState);
        setContentView(R.layout.jobview);
    }

    @Override
    protected void onResume() {
        super.onResume();
    }
}
Run Code Online (Sandbox Code Playgroud)

MainActivity有一个带有节点的ListView,并且有一个点击监听器连接到onCreate中的ListView,如下所示:

public void onCreate(Bundle savedInstanceState) 
{
    requestWindowFeature(Window.FEATURE_NO_TITLE);
    super.onCreate(savedInstanceState);
    setContentView(R.layout.main);

    _nodeRowAdapter = new NodeRowAdapter(this, _nodes);

    listView = (ListView)findViewById(R.id.ListViewNodes);
    listView.setAdapter(_nodeRowAdapter);   

    listView.setOnItemClickListener(new OnItemClickListener() {
        public void onItemClick(AdapterView<?> parent, View view, int position, long id) {
            Intent i = new Intent(getApplicationContext(), JobViewActivity.class);
            startActivity(i);
        }
    });
Run Code Online (Sandbox Code Playgroud)

但是当按下ListItem并触发Click侦听器时,显示"弹出窗口"大约需要1秒钟.

弹出窗口中的布局不是很先进.这是布局: …

android

6
推荐指数
0
解决办法
4315
查看次数

软键盘不会在ScrollView中触发滚动

我知道这里有很多关于EditText问题的问题,显示了软输入键盘以及清单中应该有的内容(adjustPan或adjustResize).

我在这里已经阅读了很多问题和答案,但未能解决我的问题.

它实际上很简单:我有一个登录活动,当键盘没有显示时,所有内容都适合一个屏幕.在这个登录活动的底部,我有一个按钮,它应该始终位于底部.当专注于一个EditText时,键盘会显示并隐藏一些内容.当键盘启动时,我希望能够向下滚动,但我不能.

  • 我已将活动设置为清单中的"adjustPan"

这是两个图像,没有键盘和键盘:

在此输入图像描述 在此输入图像描述

现在,当键盘打开时,我想向下滚动以查看按钮(黄色和底部).我做不到.

如果我在清单中设置"adjustRezise",我会得到另一个不需要的效果,如下所示:

在此输入图像描述

底部的按钮不是"在其他东西之上",但我无法滚动(以便可以查看"logga in"按钮).

第一个问题是:为什么滚动功能与"adjustPan"和键盘隐藏的东西?这是我说的合理的事情.

这是我的XML:

<?xml version="1.0" encoding="utf-8"?>
<RelativeLayout xmlns:android="http://schemas.android.com/apk/res/android"
    android:id="@+id/linearLayout6"
    android:layout_width="fill_parent"
    android:layout_height="fill_parent"
    android:background="@drawable/taxibg3"
    android:orientation="vertical" >

    <ScrollView
        android:id="@+id/ScrollView"
        android:layout_width="fill_parent"
        android:layout_height="fill_parent"
        android:layout_below="@id/login_logoBarInclude"
        android:fillViewport="true"
        android:orientation="vertical" >

        <RelativeLayout
            android:id="@+id/login_form"
            android:layout_width="fill_parent"
            android:layout_height="wrap_content" >

            <LinearLayout
                android:id="@+id/iv1"
                android:layout_width="240dp"
                android:layout_height="280dp"
                android:layout_centerHorizontal="true"
                android:layout_marginTop="5dp"
                android:background="@drawable/login_square_adapted"
                android:orientation="vertical"
                android:paddingTop="15dp" >

                <TextView
                    android:id="@+id/textView1"
                    android:layout_width="fill_parent"
                    android:layout_height="wrap_content"
                    android:gravity="center_horizontal"
                    android:text="@string/vehicleLogin"
                    android:textAppearance="?android:attr/textAppearanceMedium"
                    android:textColor="#ffffff" />

                <FrameLayout
                    android:layout_width="fill_parent"
                    android:layout_height="wrap_content"
                    android:layout_marginLeft="3dp"
                    android:layout_marginRight="3dp"
                    android:layout_marginTop="10dp" >

                    <include layout="@layout/menu_divider_horizontal" >
                    </include>
                </FrameLayout>

                <RelativeLayout
                    android:layout_width="fill_parent"
                    android:layout_height="wrap_content"
                    android:layout_marginLeft="30dp"
                    android:layout_marginRight="30dp"
                    android:layout_marginTop="35dp"
                    android:gravity="center_horizontal"
                    android:orientation="vertical" >

                    <EditText
                        android:id="@+id/login_carNumber"
                        style="@style/EditTextDark"
                        android:layout_width="fill_parent"
                        android:layout_height="wrap_content" …
Run Code Online (Sandbox Code Playgroud)

android scrollview android-layout android-softkeyboard

6
推荐指数
1
解决办法
2449
查看次数

"即使我在API级别17,也无法将MapFragment解析为类型"

我刚开始使用MapFragments,我可以在我的Activity中显示Map.我只是使用一个简单的XML布局,它按预期工作:

在此输入图像描述

现在,我需要在代码中获取Fragment,这样我就可以开始与Map进行交互了.这是我遇到问题的地方:

在此输入图像描述

如您所见,MapFragment(或getFragmentManager)无法解析为某种类型.我的目标是Android 4,API级别17:

在此输入图像描述

你也可以看到我正在引用Googke Play库.

为清晰起见,这是清单:

在此输入图像描述

所以,最大的问题是:为什么我无法解决MapFragment?我错过了什么?=)

作为旁注:SupportMapFragment似乎解决好了,但那不是我想要的.

android android-fragments android-mapview mapfragment

6
推荐指数
1
解决办法
1万
查看次数

如何捕获当前屏幕上的所有内容,包括Dialogs

我已经看过可能在Android上以编程方式捕获屏幕(屏幕截图,screendump)的所有SO文章,他们通常都会得到相同的答案.

它的问题在于它捕获了您指定的View,但它不捕获可能"在"根视图"之上"的任何Dialog.这是我使用的代码,无法捕获任何"在顶部":

Bitmap bitmap;
View v1 = findViewById(android.R.id.content);
v1.setDrawingCacheEnabled(true);
bitmap = Bitmap.createBitmap(v1.getDrawingCache());
v1.setDrawingCacheEnabled(false);
File path = Environment.getExternalStorageDirectory();
File file = new File(path, "myDump.jpg");

FileOutputStream outputStream;

try 
{
    outputStream = new FileOutputStream(file);
    bitmap.compress(Bitmap.CompressFormat.JPEG, 10, outputStream);
    outputStream.flush();
    outputStream.close();
} 

catch (Exception e) 
{
  e.printStackTrace();
}
Run Code Online (Sandbox Code Playgroud)

问题是: 如何捕获整个屏幕,包括顶部的对话框?我只对捕获我正在编写的应用程序感兴趣,而不是主屏幕或类似的东西,只是在我的根视图之上的任何内容.

我确实读过一些关于root的内容,但我真的希望在我写的应用程序的完整screendump是不可能的.

android screenshot

6
推荐指数
1
解决办法
1513
查看次数

如果后端更改需要更新的应用程序,如何在应用程序上强制更新

我已经阅读了关于强制更新应用程序的不同帖子,并且ppl所拥有的唯一想法(据我所知)是创建一个Web服务,应用程序调用该服务以查看当前版本的版本.必须手动更新WS以反映versionCode.

这种方法有几个问题:

问题1:

当您将应用程序上传到Play商店时,它可能需要几个小时才能下载设备,您永远不会知道何时.此外,在我看来它似乎在不同的时间可用于不同的设备,所以你真的不知道什么时候它"可供所有人".

这意味着您无法立即更新WS(告诉应用程序什么是"当前"版本),因为将它们指向Play Store将不会非常有建设性,因为更新的应用程序无法在那里使用.既然你不知道什么时候可以使用它,你真的不知道何时更新WS.

问题2:

有时您会对后端(通信协议更改或其他内容)进行一些更改,这些更改要求您上传新版本的应用程序,然后更新后端,以便它们可以按预期方式相互通信.在这种情况下,您真的想要某种方式告诉应用"请更新,因为您已经过时"并将它们引导到Play商店.

所以,问题是:

我该如何实现此功能?

java android google-play

6
推荐指数
1
解决办法
1111
查看次数

"无法将?attr/colorPrimary转换为drawable"

我正在开始一个新项目,所以项目或多或少"空".我刚刚添加了MainActivity,带有MainActivtyFragment.我没有向他们添加任何代码.

现在,我编辑styles.xml,看起来像这样:

<resources>
    <!-- Base application theme. -->
    <style name="MyTheme" parent="@android:style/Theme.Material.Light.DarkActionBar">
        <item name="android:windowNoTitle">true</item>
        <!--We will be using the toolbar so no need to show ActionBar-->
        <item name="android:windowActionBar">false</item>
        <!-- Set theme colors from http://www.google.com/design/spec/style/color.html#color-color-palette-->
        <!-- colorPrimary is used for the default action bar background -->
        <item name="android:colorPrimary">#2196F3</item>
        <!-- colorPrimaryDark is used for the status bar -->
        <item name="android:colorPrimaryDark">#1976D2</item>
        <!-- colorAccent is used as the default value for colorControlActivated
             which is used to tint widgets -->
        <item name="android:colorAccent">#FF4081</item>
        <!-- You can also …
Run Code Online (Sandbox Code Playgroud)

android material-design

5
推荐指数
1
解决办法
7953
查看次数