小编Eri*_*ine的帖子

当我尝试使用Web API 2的属性路由时,为什么会出现InvalidOperationException?

我刚刚更新了我的MVC 4应用程序中的Web API包,以便我可以使用属性路由.当我添加时, config.MapHttpAttributeRoutes()我收到一条错误,上面写着" 该对象尚未初始化.确保在所有其他初始化代码之后,在应用程序的启动代码中调用HttpConfiguration.EnsureInitialized()." 如果我删除config.MapHttpAttributeRoutes()和Route属性,一切都像以前一样工作.我该如何解决这个错误?

这是我的WebApiConfig类:

public static class WebApiConfig
    {
        public static void Register(HttpConfiguration config)
        {

            config.MapHttpAttributeRoutes();
            config.Routes.MapHttpRoute(
                name: "DefaultApi",
                routeTemplate: "api/{controller}/{id}",
                defaults: new { id = RouteParameter.Optional }
            );



            // Uncomment the following line of code to enable query support for actions with an IQueryable or IQueryable<T> return type.
            // To avoid processing unexpected or malicious queries, use the validation settings on QueryableAttribute to validate incoming queries.
            // For more information, visit http://go.microsoft.com/fwlink/?LinkId=279712.
            //config.EnableQuerySupport(); …
Run Code Online (Sandbox Code Playgroud)

c# asp.net-mvc asp.net-mvc-4 asp.net-web-api

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

如何在同一设备上运行的Android应用程序之间传输文件?

我正在编写一个与RESTful服务接口的Android应用程序.此Web服务基本上是文件系统的前端,并提供元数据以及对文件的CRUD访问.我的应用程序检索元数据,并通过a将其公开给第三方应用程序ContentProvider.

我需要添加第三方应用程序的能力,在与我的应用程序相同的设备上运行,通过向我的应用程序发送请求(而不是直接与服务器)来CRUD实际文件.这意味着他们需要通过我的应用程序发送或接收文件的内容(通常是XML或图像).

我想到了实现这个的两种方法:

选项1 - 使用ContentProvider.openFile

这似乎是让第三方应用程序能够从我的文件中读取文件的明显选择ContentProvider.我认为当这些应用程序需要通过我的`ContentProvider'创建或更新文件时,它开始变得棘手.完成后我需要回调才能知道何时将新的/更改的文件发送回服务器.我相信我可以为此目的使用FileObserver.

选项2 - 通过服务使用Messenger

通过这种方法,我可以通过应用程序和客户端应用程序之间的文件发送Messenger.该文件必须通过一个传递Bundle,所以我不知道什么是最好的格式是发送它们(File,FileDescriptor,字节数组,别的东西?).如果文件变得很大,我不能很好地处理这会导致问题.

选项3 - 混合方法

  1. 将外部存储上的文件夹用作下拉框
  2. 通过Messenger/ 传递CRUD请求和删除框内容Service
  3. 使用它ContentProvider来存储请求的状态
  4. 第三方应用通过a接收状态更新 ContentObserver

摘要

我认为使用ContentProvider将是理想的解决方案,但似乎API并不完全支持我的用例.我担心尝试沿着这条路走下去可能会导致一个愚蠢的实施.如果我采用MessengerService接近,我不确定通过a传输文件的最强大的方法Bundle.

混合方法似乎非常强大,但实现起来最复杂.文件实际上并没有被传递,因此性能应该很好.但是,我担心这会过度设计解决方案.

在同一Android设备上运行的应用程序之间传输文件的最佳方法是什么? 当然,我对我在问题中没有概述的其他选项持开放态度.

android ipc android-service android-contentprovider

25
推荐指数
1
解决办法
4549
查看次数

如何使用Maven构建Adobe Air项目?

有没有人用Maven成功构建Adobe Air应用程序?如果是这样,那么让它运作的步骤是什么?

我一直在尝试使用flex-mojos来构建Air应用程序.当我将包装类型设置为"aswf"时,如DashboardSamplePom中所建议的那样,Maven抱怨aswf是一种未知的包装类型.我也找到了他们的空气超级pom,但无法弄清楚如何引用它作为我的POM的父母.

apache-flex air adobe maven-2

8
推荐指数
1
解决办法
5769
查看次数

如何指定Android模拟器应在我的开发计算机上使用哪个网络接口?

我的开发机器同时连接到两个不同的网络.一个是通过以太网(eth0),另一个是WiFi(en1).在这种情况下,Android模拟器似乎总是想要访问eth0上的网络.从命令行启动模拟器时,是否有一个选项可以告诉它在开发机器上使用特定的网络接口(在我的例子中为en1)?

看起来这应该可以通过你可以传递给-qemu标志的 args .但是,使用此标志时,不会启动当前版本的模拟器.

networking android android-emulator

8
推荐指数
1
解决办法
4546
查看次数

在Glass GDK浸入式应用程序中打开活动时,如何使屏幕变亮?

我有一个GDK浸入式应用程序,发射器Activity获取一个SCREEN_DIM_WAKE_LOCK WakeLock.该应用程序还有一个服务,它将接收聊天消息并启动Intent一个Activity以显示每个消息.每当Activity打开消息时,我想让屏幕变亮.但是,我发现的所有方法似乎都不起作用.

例如,添加以下内容onResume无效:

    Settings.System.putInt(getContentResolver(), SCREEN_BRIGHTNESS_MODE, SCREEN_BRIGHTNESS_MODE_MANUAL);

    WindowManager.LayoutParams lp = getWindow().getAttributes();
    lp.screenBrightness = 1.0f;
    getWindow().setAttributes(lp);
Run Code Online (Sandbox Code Playgroud)

为了更好地说明问题,这是我的应用程序中的事件序列:

  1. 活动A启动并获取SCREEN_DIM_WAKE_LOCK.活动A在短时间后变暗.
  2. 服务B通过网络接收聊天消息,并为活动C创建一个Intent
  3. 活动C打开,如上所示设置屏幕亮度,但仍保持灰色

如何让屏幕变亮?

android google-glass google-gdk

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

如何在OSX上的Wireshark中从Android模拟器获取tcpdump的实时视图?

我目前需要调试我的应用程序和服务器之间的通信.我已经能够通过使用tcpdump开关启动模拟器来捕获数据包:

%emulator -tcpdump emulator.cap @MyDroid
Run Code Online (Sandbox Code Playgroud)

我遇到的问题是,在打开Wireshark中的emulator.cap文件之前,我需要关闭模拟器.否则,Wireshark会抱怨捕获不完整.这个过程非常缓慢.我希望能够在Wireshark中获得emulator.cap文件的实时视图.

看来应该可以使用管道.我正在OS X上进行开发,并尝试了本指南中的Way 1和Way 2:http://wiki.wireshark.org/CaptureSetup/Pipes.

它至少允许我查看捕获的快照,但我没有得到实时更新的视图.单击Wireshark中的刷新按钮不会更新捕获的数据包.我必须关闭并重新打开Wireshark以获得更新(这比重新启动模拟器更快).

在OS X上的Wireshark中从Android模拟器查看实时捕获的步骤是什么?

macos android packet-capture wireshark android-emulator

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

初始创建后,将元素添加/插入到Groovy MarkupBuilder对象中

我理解如何使用MarkupBuilder在Groovy中创建XML.在初始创建后如何向MarkupBuilder对象添加/插入元素?例如,从以下开始:

def builder = new MarkupBuilder(writer)
  def items = builder.items{
        item(name: "book")
  }
Run Code Online (Sandbox Code Playgroud)

哪会产生:

<items> 
   <item name="book/> 
 </items>
Run Code Online (Sandbox Code Playgroud)

我正在尝试创建一个可扩展的基本XML消息,使用核心类来包装构建器和继承以添加特定标记.基于上面的例子,这是我的基类:

Class ItemBuilder{
   def name;
   def builder = new MarkupBuilder(writer)
   public Object getXML(){
     def items = builder.items{
            item(name: this.name)
      }
     return items;
   }
}
Run Code Online (Sandbox Code Playgroud)

这是一个示例扩展消息构建器:

Class SubItemBuilder extends ItemBuilder{
       def type;

       public Object getXML(){
         def items = super.getXML();
         //do something here to add a subitem child tag....
         return items;
       }
    }
Run Code Online (Sandbox Code Playgroud)

如果我在JavaScript中使用JSON,我会做类似的事情:

items.item.subitem = "foo"
Run Code Online (Sandbox Code Playgroud)

我最终希望SubItemBuilder.getXML生成:

<items> 
     <item name="book>
       <subitem type="paperback"/>
      </item> …
Run Code Online (Sandbox Code Playgroud)

xml markup groovy dom

4
推荐指数
1
解决办法
5655
查看次数

如何更改Android的飞行模式的行为,以便它不会关闭蜂窝无线电?

我一直在尝试创建一个简单的应用程序,让用户在Android中自定义飞行模式的行为.这样做的动机来自于拥有三星Fascinate的亲戚,在通话过程中他会意外打开飞机模式.这种情况发生在他拿着手机时,不小心按住侧面电源/锁定按钮,这会打开一个对话框,其中包含"静音模式","飞行模式"和"关机"菜单.他不小心通过触摸他的脸颊来触发飞机模式.这会使电话掉线,对他来说是一种烦恼.

最后,我想创建一个应用程序,防止在用户处于通话过程中关闭蜂窝无线电.但是,对于第一次迭代我认为这是有道理的,让用户手动选择哪个电台将不会通过飞行模式得到关闭.

打算修改Android源代码或做一些需要root的东西.我正在寻找标准框架内的解决方案

我第一次尝试解决这个问题是创建一个可以修改的应用程序System.AIRPLANE_MODE_RADIOS:

System.putString(getApplication().getContentResolver(), System.AIRPLANE_MODE_RADIOS, "");
Run Code Online (Sandbox Code Playgroud)

根据API文档,此常量是"以飞机模式打开时需要禁用的以逗号分隔的无线电列表".似乎飞机模式实际上并不使用此常量,并且在更改后它将继续正常工作.

我的下一次尝试是创建BroadCastReceiver,接收AIRPLANE_MODE操作,并发出一个Intent来反转它:

Intent am = new Intent(Intent.ACTION_AIRPLANE_MODE_CHANGED);
intent.putExtra("state", 0);
context.sendBroadcast(am);
Run Code Online (Sandbox Code Playgroud)

激活后,这会关闭飞行模式.但是,如果用户处于呼叫中间,它仍将被丢弃(这是有道理的).所以,这不是我的问题的解决方案.

有谁知道如何防止飞机模式禁用蜂窝无线电?

java android action android-intent

4
推荐指数
1
解决办法
5777
查看次数

我怎样才能控制android mediaplayer?

我是Java和Eclipse的Android开发新手.

我正在尝试开发一个控制内置Android媒体播放器的应用程序.当我按下音量增大/减小时,它应该跳过曲目.如何从代码控制媒体播放器?

java eclipse android

3
推荐指数
1
解决办法
1402
查看次数