小编ste*_*fan的帖子

Web API 2 GET by query参数

我要从我的WCF Rest/Json服务切换到WebApi2,我正在寻找一种方法来映射这个方法:

[OperationContract]
[WebInvoke(Method = "GET", ResponseFormat = WebMessageFormat.Json, UriTemplate = "Users?mail={mail}&pw={pw}")]
UserData getUserByEmailAndPw(String mail);
Run Code Online (Sandbox Code Playgroud)

我想通过电子邮件和密码查询用户,因此我无法使用打算使用ID的默认GET.据我所知,你应该通过Rest中的属性来做到这一点......

我是否只需要为此注册路线或者是否有更好的方法(可能按照惯例)?

asp.net asp.net-web-api asp.net-web-api2

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

即使从"未优化的应用程序"中删除,PowerManager.isIgnoringBatteryOptimizations也始终返回true

我有一个里程日志应用程序,可以进行GPS跟踪,并能够在后台建立与汽车的OBDII连接.

现在我想显示一个Popup,告诉用户我的应用程序是否在打盹中没有列入白名单,因为这可能会停止我的后台(实际上是前景)服务...

我做:

 String PACKAGE_NAME = getApplicationContext().getPackageName();
            PowerManager pm = (PowerManager) this.getSystemService(Context.POWER_SERVICE);
            boolean status = false;
            status = pm.isIgnoringBatteryOptimizations(PACKAGE_NAME);

            if (!status) {
                // show popup
            }
Run Code Online (Sandbox Code Playgroud)

但是PowerManager.isIgnoringBatteryOptimizations总是返回'true',即使它再次从'Not optimized apps'中删除.只有当我卸载应用程序'false'时才会再次返回...在Galaxy Note 8(Android 8.0)和Emulator 8.1上测试

问题很简单:这是一个错误吗?或者如何从白名单中删除应用程序,以便PowerManager.isIgnoringBatteryOptimizations再次返回'false'?

android android-doze-and-standby android-doze

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

WifiManager重新连接返回true但不连接

如果信号足够强,我的应用会创建一个adhoc连接.不幸的是,Android不允许多个WIFI网络,所以我必须断开当前的网络.当信号变弱时,我想重新连接到前一个.

我将以前连接的SSID存储在SharedPreference中,然后使用以下代码:

 for (WifiConfiguration i : list) {
    if (i.SSID != null && i.SSID.equals("\"" + networkSSID + "\"")) {
         wifiManager.disconnect();
         wifiManager.enableNetwork(i.networkId, true);
         boolean success = wifiManager.reconnect();
         if (!success) {
            wifiManager.reassociate();
         }
    }
 }
Run Code Online (Sandbox Code Playgroud)

代码正在运行并WifiManger.reconnect();返回true但我没有连接到以前的网络.

这是我要重新连接的家庭网络的配置:

ID: 10 SSID: ""WLAN.Tele2.net"" BSSID: null FQDN: null REALM: null PRIO: 0
 KeyMgmt: NONE Protocols: WPA RSN
 AuthAlgorithms:
 PairwiseCiphers: TKIP CCMP
 GroupCiphers: WEP40 WEP104 TKIP CCMP
 PSK: 
Enterprise config:
password NULL
subject_match NULL
engine 0
client_cert NULL
ca_cert NULL
anonymous_identity NULL
phase1 NULL …
Run Code Online (Sandbox Code Playgroud)

android android-networking

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

sitemap.xml网址返回404错误

我有一个大型会员营销网站,在Windows Azure上托管了数百万种产品。对于SEO,我必须提供一个动态创建的sitemap.xml。

  public ActionResult SiteMap()
    {
        string sitemapUrl = "https://trendley.blob.core.windows.net/sitemap/sitemap.xml";

        byte[] bImage = null;
        using (WebClient wc = new WebClient())
        {
            bImage = wc.DownloadData(sitemapUrl);
        }
        return File(bImage, "application/octet-stream");
    }
Run Code Online (Sandbox Code Playgroud)

我将以下路由添加到我的RouteConfig中:

   routes.MapRoute("Sitemap",
"sitemap.xml",
new { controller = "Home", action = "Sitemap" });
Run Code Online (Sandbox Code Playgroud)

不幸的是,这没有用。我得到-> HTTP错误404.0-找不到

当我将“ sitemap.xml”更改为sitemapxml(除去扩展名)时,将调用我的控制器方法。已经进行了一些研究并使用了我的web.config,但似乎没有任何效果。

我尝试的第一件事是添加:

<modules runAllManagedModulesForAllRequests="true" />
Run Code Online (Sandbox Code Playgroud)

第二件事:

 <add
name="AdfsMetadata"
path="sitemap.xml"
verb="GET"
type="System.Web.Handlers.TransferRequestHandler"
preCondition="integratedMode,runtimeVersionv4.0" />
Run Code Online (Sandbox Code Playgroud)

有人可以告诉我如何做到这一点。我是否需要为此编写自己的处理程序?

干杯,斯特凡

asp.net-mvc asp.net-mvc-4

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

从MVC控制器返回JSON字符串

我使用以下代码将对象发送/接收到我的mvc控制器:

$.ajax({
url: _createOrUpdateTimeRecord,
data: JSON.stringify(data),
type: "POST",
//dataType: "json",
contentType: "application/json; charset=utf-8",
beforeSend: function () {
    $("#loading-overlay").show();
},
success: function (data2) {
    try {   // tried to parse it manually to see if anything changes.
        data2 = JSON.parse(data2);
    }
    catch (err) {

    }
},
error: function (xhr, ajaxOptions, thrownError) {
    alert(thrownError + 'xhr error -- ' + xhr.status);
}
Run Code Online (Sandbox Code Playgroud)

});

在我的mvc控制器上,我将JSON对象作为字符串,因此不需要.NET JavascriptSerializer和JsonResult。

我的JSON字符串如下所示:

data2 = "{title:'1111111',start:'2014-03-23T16:00:00.000',end:'2014-03-23T18:00:00.000',id:107,hdtid:1,color:'#c732bd',allDay:false,description:''}"
Run Code Online (Sandbox Code Playgroud)

而且我总是得到:“无效字符”

我已经尝试过返回一个字符串并在客户端手动解析JSON。因此,我使用ContentResult作为返回类型,但没有成功

    public class JsonStringResult : ContentResult
    {
        public JsonStringResult(string json)
        {
            Content …
Run Code Online (Sandbox Code Playgroud)

asp.net-mvc jquery json asp.net-mvc-4

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

NFC在后台

我的应用程序已在后台处理WIFI /蓝牙连接/断开连接,并根据这些事件执行后台任务。现在,我想对NFC做同样的事情,但是到目前为止,我发现的所有样本都在发现NFC标签时开始了一项活动。

我已经尝试为NDEF_DISCOVERED注册一个接收器,但是它不起作用...

 <receiver android:name="com.mxp.time.receivers.NfcReceiver" >
        <intent-filter>
            <action android:name="android.nfc.action.NDEF_DISCOVERED" />
        </intent-filter>
    </receiver>
Run Code Online (Sandbox Code Playgroud)

实际上,我已经读过,由于android的后备策略,这是不可能的。到目前为止,我发现的唯一解决方案是在没有UI的情况下定义活动,并在连接的标签上进行轮询。我真的不喜欢这种技术,因为它需要保持此活动为打开状态,这会增加电池使用量

谁能帮我这个?

干杯,斯特凡

android nfc intentfilter broadcastreceiver android-intent

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

DialogFragment导致IllegalStateException

我正在使用此代码将我的视图加载到DialogFragment:

    @Override
public View onCreateView(LayoutInflater inflater, ViewGroup container, Bundle savedInstanceState) {

    SyncPopup syncPopup = new SyncPopup(getActivity(), this,_callback);

    getDialog().requestWindowFeature(Window.FEATURE_NO_TITLE);
    getDialog().getWindow().setSoftInputMode(STYLE_NO_INPUT);
    getDialog().setCanceledOnTouchOutside(false);


    return syncPopup;
}
Run Code Online (Sandbox Code Playgroud)

这段代码在我的自定义DialogFragment中.所以this指向DialogFragment.SyncPopup保存了我的所有视图逻辑.我正在使用这种模式,以便我可以在其他地方重用SyncPopup.

在我的SyncPopup中,我正在运行AsyncTask,onPostExecute我希望关闭DialogFragment.- > _parentFragment通过构造函数注入,参见上面的代码(使用this指针).

SyncInfo si = new SyncInfo(email, Start, End);
        new AsyncTask<SyncInfo, Void, String>() {
            @Override
            protected void onPostExecute(String result) {
                super.onPostExecute(result);

                _callback.onSyncFinish();
                _parentFragment.dismiss();

            }

            @Override
            protected String doInBackground(SyncInfo... params) {
                SyncInfo si = params[0];
                return Cache.sync(si.Email, si.Start, si.End);
            }
        }.execute(si);
Run Code Online (Sandbox Code Playgroud)

我已经测试了这段代码,但在Google Analytics中,我看到了_parentFragment.dismiss();原因 - >IllegalStateException (@SyncPopup$8:onPostExecute:221) …

android android-layout android-fragments

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