我使用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)
这当然非常糟糕,我无法弄清楚原因.你能?=)
测试为毛伊岛应用程序添加自定义启动屏幕,我读了一些Microsoft 文档,上面写着
在构建时,启动屏幕图像的大小会调整为适合目标平台和设备的正确大小。然后,调整大小的启动屏幕将添加到您的应用程序包中。
然而,这不是我所看到的;相反,图像被屏幕覆盖并且未被调整。重现:
Resources/ImagesMauiSplashScreen当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) 在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):
崩溃记录如下:
我认为更多的"全球"风格总是被更多的"本地"风格所覆盖.例如,如果我重新定义所有按钮以使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时,没有任何反应.
我错过了什么?
我有一个非常简单的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秒钟.
弹出窗口中的布局不是很先进.这是布局: …
我知道这里有很多关于EditText问题的问题,显示了软输入键盘以及清单中应该有的内容(adjustPan或adjustResize).
我在这里已经阅读了很多问题和答案,但未能解决我的问题.
它实际上很简单:我有一个登录活动,当键盘没有显示时,所有内容都适合一个屏幕.在这个登录活动的底部,我有一个按钮,它应该始终位于底部.当专注于一个EditText时,键盘会显示并隐藏一些内容.当键盘启动时,我希望能够向下滚动,但我不能.
这是两个图像,没有键盘和键盘:

现在,当键盘打开时,我想向下滚动以查看按钮(黄色和底部).我做不到.
如果我在清单中设置"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) 我刚开始使用MapFragments,我可以在我的Activity中显示Map.我只是使用一个简单的XML布局,它按预期工作:

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

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

你也可以看到我正在引用Googke Play库.
为清晰起见,这是清单:

所以,最大的问题是:为什么我无法解决MapFragment?我错过了什么?=)
作为旁注:SupportMapFragment似乎解决好了,但那不是我想要的.
我已经看过可能在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是不可能的.
我已经阅读了关于强制更新应用程序的不同帖子,并且ppl所拥有的唯一想法(据我所知)是创建一个Web服务,应用程序调用该服务以查看当前版本的版本.必须手动更新WS以反映versionCode.
这种方法有几个问题:
问题1:
当您将应用程序上传到Play商店时,它可能需要几个小时才能下载设备,您永远不会知道何时.此外,在我看来它似乎在不同的时间可用于不同的设备,所以你真的不知道什么时候它"可供所有人".
这意味着您无法立即更新WS(告诉应用程序什么是"当前"版本),因为将它们指向Play Store将不会非常有建设性,因为更新的应用程序无法在那里使用.既然你不知道什么时候可以使用它,你真的不知道何时更新WS.
问题2:
有时您会对后端(通信协议更改或其他内容)进行一些更改,这些更改要求您上传新版本的应用程序,然后更新后端,以便它们可以按预期方式相互通信.在这种情况下,您真的想要某种方式告诉应用"请更新,因为您已经过时"并将它们引导到Play商店.
所以,问题是:
我该如何实现此功能?
我正在开始一个新项目,所以项目或多或少"空".我刚刚添加了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 ×8
.net ×2
c# ×2
.net-maui ×1
email ×1
google-play ×1
java ×1
mapfragment ×1
maui ×1
permissions ×1
react-native ×1
screenshot ×1
scrollview ×1
smtpclient ×1
svg ×1