Articles of xamarin.android

MarkerClick有效,但InfoWindowClick无法打开ViewModel

以下MarkerClick实现工作,非常好。 我可以通过ShowViewModel打开其他View View.cs mMap.MarkerClick += MMap_MarkerClick; private void MMap_MarkerClick(object sender, GoogleMap.MarkerClickEventArgs e) { ViewModel.MapInfoSelected(e.Marker.Title); } ViewModel.cs public void MapInfoSelected(string name) { ShowViewModel(new { studentName = name}); } InfoWindowClick不会触发打开其他视图。 View.cs mMap.InfoWindowClick += MMap_InfoWindowClick; private void MMap_InfoWindowClick(object sender, GoogleMap.InfoWindowClickEventArgs e) { ViewModel.MapInfoSelected(e.Marker.Title); } ViewModel.cs public void MapInfoSelected(string name) { // it hits here, but does not hit […]

显示自动适合的启animation面图像

我使用以下样式显示用MonoDroid编写的Android应用程序的启animation面。 然而,它似乎采取图像并最大化它以适应整个屏幕同时弄乱纵横比。 因此,图像看起来巨大而可怕。 有没有办法让它最大化,但保持纵横比,所以它看起来仍然很好? @drawable/splashscreenimage true 这是C#中的活动,它创建启animation面并转到登录。 [Activity(MainLauncher = true, Theme = “@style/Theme.Splash”, NoHistory = true)] public class SplashScreenActivity : Activity { protected override void OnCreate(Bundle bundle) { base.OnCreate(bundle); // Start our real activity StartActivity(typeof(LoginActivity)); } }

Xamarin.Android构建/部署非常慢。 如何加快速度?

我们有一个大型的Xamarin.Android项目,有两个依赖项目和一堆第三方dll。 在Hax-x86仿真器或Nexus 5设备上进行调试部署(无需任何更改)非常缓慢(> 80秒)。 为了比较,App的Xamarin.iOS版本在7秒内部署到真实设备上。 为了测试部署时间,我还创建了一个新的Xamarin.Android项目,该项目在大约四秒钟内部署。 添加依赖项目时,部署时间最多为7秒。 当我将布局文件添加到依赖项目时,部署时间增加到大约十秒。 是否可以使用Xamarin Studio加速Android构建和部署? 相比之下,大型Eclipse Android项目的部署速度相当快。 更新: 只运行安装构建步骤大约需要40秒: time xbuild /t:Install BigApp.csproj … … … Time Elapsed 00:00:42.8526970 大约一半的时间花在上面命令打印到控制台的地方: Target _CompileDex: JavaSourceFiles: JavaLibraries: ExternalJavaLibraries: Tool /usr//bin/java execution started with arguments: -Xmx512M -jar /Users/myname/Library/Developer/Xamarin/android-sdk-mac_x86/build-tools/17.0.0//lib/dx.jar –no-strict –dex –output=obj/Debug/android/bin/classes.dex obj/Debug/android/bin/classes /Library/Frameworks/Xamarin.Android.framework/Versions/Current/lib/mandroid/platforms/android-15/mono.android.jar /Users/myname/Projects/BigApp/obj/Debug/__library_projects__/TestFlightBindings.Jars.TestFlightLib_1_2.jar /Users/myname/Projects/BigApp/obj/Debug/__library_projects__/android-support-v4.jar /Users/myname/Projects/BigApp/obj/Debug/__library_projects__/classes.jar /Users/myname/Library/Developer/Xamarin/android-sdk-mac_x86/extras/google/google_play_services/libproject/google-play-services_lib/libs/google-play-services.jar 当我从Xamarin Studio运行解决方案时,此步骤发生两次。 一次用于依赖项目,一次用于主项目。 我尝试在控制台上重现此行为 “/Applications/Xamarin Studio.app/Contents/MacOS/mdtool” -v […]

在Android上连接Xamarin的配对蓝牙设备

当应用程序通过A2DP或Hands Free Profile启动时,我们需要我们的应用程序能够自动连接到配对的蓝牙设备。 我们正在使用Xamarin(monodroid),用于Android平台。 我发现了这个stackoverflow问题:以编程方式连接到配对的蓝牙设备 但它与本土方法有关(见kcoppock的回答)。 我想知道是否有办法通过Xamarin实现这一目标。 我们可以连接到SPP端点,因为它是基于RFCOMM的连接,但我们需要它和音频连接,所以我们想要一种连接到A2DP的方法。 更新1: 我们尝试使用CreateInsecureRfcommSocketToServiceRecord方法进行连接,如下所示: mmSocket = device.CreateInsecureRfcommSocketToServiceRecord(0000110A-0000-1000-8000-00805F9B34FB); mmSocket.Connect(); 在致电Connect时,我们收到错误消息: read failed, socket might closed or timeout, read ret: -1 堆栈跟踪以: Java.IO.IOException at Android.Runtime.JNIEnv.CallVoidMethod (IntPtr jobject, IntPtr jmethod) [0x00062] in /Users/buil… 更新2: 顺便说一句,当我们尝试使用kcoppock的方法通过本机java测试应用程序连接时,连接代码似乎没有错误,但设备没有作为A2DP耳机连接。 我们所看到的唯一能够实现 这一目标的 编程方式是Google Play应用 ,它certificate了这种可能性。

电话进入睡眠状态后,保持wifi在前台服务中处于活动状

我想在手机锁定时从wifi接收数据包。 问题是,当我锁定屏幕时,我的前台服务停止接收数据包。 我正在使用Foreground Service,如下所示: public override StartCommandResult OnStartCommand(Intent intent, StartCommandFlags flags, int startId) { var notification = new Notification.Builder(this) .SetContentTitle(Resources.GetString(Resource.String.app_name)) .SetContentText(Resources.GetString(Resource.String.notification_text)) .SetSmallIcon(Resource.Drawable.ic_stat_name) .SetContentIntent(BuildIntentToShowMainActivity()) .SetOngoing(true) .AddAction(BuildRestartTimerAction()) .AddAction(BuildStopServiceAction()) .Build(); // Enlist this instance of the service as a foreground service StartForeground(Constants.SERVICE_RUNNING_NOTIFICATION_ID, notification); /*DO THIS EVEN WHEN SCREEN IS LOCKED*/ var powerManager = (PowerManager)GetSystemService(PowerService); _wakeLock = powerManager.NewWakeLock(WakeLockFlags.Partial, “WakeLockTag”); […]

使用ValueAnimator使TextView闪烁不同的颜色

我想使用ValueAnimator使TextView的文本颜色在两种不同颜色之间闪烁两次,但我想用XML创建animation。 我找不到任何例子。 任何帮助将不胜感激。 更新 下面的代码非常完美。 颜色从黑色变为蓝色,蓝色变为黑色,黑色变为蓝色,蓝色变为黑色,每次反向重复之间的颜色变为500ms。 然而,我试图从animator xml文件中使用它。 ValueAnimator colorAnim = ObjectAnimator.OfInt(objectToFlash, “textColor”, (int)fromColor, (int)toColor); colorAnim.SetDuration(500); colorAnim.SetEvaluator(new ArgbEvaluator()); colorAnim.RepeatCount = 3; colorAnim.RepeatMode = ValueAnimatorRepeatMode.Reverse; XML 码 ValueAnimator anim = (ObjectAnimator)AnimatorInflater.LoadAnimator(Activity, Resource.Animator.blinking_text); anim.SetTarget(objectToFlash); 使用xml会导致TextView文本颜色的颜色在500毫秒内变化多少次。 更新我认为我需要的是在xml中模仿OfInt调用以编程方式执行的操作的关键帧。 现在尝试这个,但到目前为止没有运气。

Mac上的debug.keystore在哪里?

我正在尝试生成我的指纹,它应该在这里: ~/.android/debug.keystore ,但我没有任何东西,虽然我也可以正常运行我的monodroid项目,所以我怎么能finddebug.keystore文件?

Android Intent Chooser仅显示电子邮件选项

我的应用程序集成了电子邮件,用户可以直接从应用程序提交错误报告,反馈等。 我正在使用application / octet-stream作为Intent的SetType。 当您提交电子邮件时,您将获得内容选择器,并显示来自Evernote,Facebook,电子邮件等的各种项目。 如何让此选择器仅显示电子邮件,以免将用户与适合内容选择器types的所有其他项目混淆? 谢谢。

如何在Windows中轻松查看和过滤Android的logcat?

我正在“调试”一个Xamarin Android应用程序,它只在没有连接调试器时出现问题,因此,我不得不依靠日志来找出问题所在。 但是,从命令行执行adb logcat非常痛苦。 常量窗口滚动非常麻烦。 Xamarin在Visual Studio中对logcat进行了一些集成,但在实践中,我发现使用它太麻烦了。 从我在网上可以看出,看起来每个人都在Eclipse中使用一些插件用于logcat。 但是,我没有或想要Eclipse。 是否有任何工具可以提供一个漂亮且易于过滤(并且不是经常滚动)的方式的logcat? 最好是在GUI中,因为我必须从一次试图筛选出这个bug的过程中筛选出相当多的消息

Visual Studio 2017 – Xamarin – 文件“obj \ Debug \ android \ bin \ packaged_resources”不存在

我已经解决了这个问题2天了,找不到任何解决办法。 我在Visual Studio 2017中有一个Xamarin Android应用程序,包含三个项目: Xamarin.Android项目(主要) 特定于Android的unit testing在设备上运行 – 使用适用于Visual Studio的NUnit模板创建的NUnit 3 Test Project (Android)types的NUnit 3 Test Project (Android) 独立于平台的unit testing项目( Unit Test Project (.NET Framework)types的Unit Test Project (.NET Framework) ) 一切都运作良好,直到现在。 当我选择我的主项目作为启动项目时,我的应用程序被部署到设备/模拟器。 当我选择我的特定于Android的unit testing项目时,部署测试项目并在设备/模拟器上由nUnit Xamarin Runners执行unit testing。 但是几天前我用最新的可用更新更新了我的Visual Studio 2017,现在,当我尝试构建这个特定于android的unit testing项目时, 我收到以下错误 : The file “obj\Debug\android\bin\packaged_resources” does not exist. 我到处搜索,包括这个和这个 SO主题。 我还完全重新安装了包含Android SDK的Visual Studio […]