小编Bja*_*sen的帖子

如何在VSCode(Visual Studio代码)中一起调试HTML和JavaScript?

我在VSCode中有一个非常简单的项目,一个链接到单个app.js文件的index.html文件.

当我点击F5时,我想运行和调试这个迷你网站.

如何配置VSCode以在浏览器中打开index.html,然后允许我在app.js中设置断点,这些断点将由我在浏览器中与应用程序的交互触发?

在Visual Studio中,这将"正常工作",因为它会启动自己的Web服务器IIS Express.在VSCode中,我不确定如何设置launch.json和/或tasks.json来创建一个简单的node.js Web服务器并提供index.html.

我已经看到了调试javascript应用程序的一些示例,例如这个launch.json:

{
    "version": "0.1.0",
    "configurations": [
        {
            "name": "Launch Bjarte's app",
            "type": "node",
            "program": "app.js",
            "stopOnEntry": true,
            "args": [],
            "cwd": ".",
            "runtimeExecutable": null,
            "runtimeArguments": [],
            "env": {},
            "sourceMaps": false
        },
        {
            "name": "Attach",
            "type": "node",
            "address": "localhost",
            "port": 5858,
            "sourceMaps": false
        }
    ]
}
Run Code Online (Sandbox Code Playgroud)

这将运行js文件,但我不明白我如何与应用程序进行交互.

debugging visual-studio-code

41
推荐指数
3
解决办法
4万
查看次数

在Android 7(API级别24)中,我的应用程序不允许静音手机(将铃声模式设置为静音)

我有一个应用程序,通过使用AudioManager将手机静音,并使用此代码将铃声模式设置为静音:

AudioManager audioManager = 
    (AudioManager) context.getSystemService(Context.AUDIO_SERVICE);
try {
    audioManager.setRingerMode(AudioManager.RINGER_MODE_SILENT)
} catch (Exception e) {
    e.printStackTrace();
}
Run Code Online (Sandbox Code Playgroud)

这适用于Android 6,但现在使用Android 7,我收到以下错误:

System.err: java.lang.SecurityException: Not allowed to change Do Not Disturb state
System.err: at android.os.Parcel.readException(Parcel.java:1683)
System.err: at android.os.Parcel.readException(Parcel.java:1636)
System.err: at android.media.IAudioService$Stub$Proxy.setRingerModeExternal(IAudioService.java:962)
System.err: at android.media.AudioManager.setRingerMode(AudioManager.java:1022)
System.err: at controllers.SearchResultController.mutePhone(SearchResultController.java:185)
Run Code Online (Sandbox Code Playgroud)

有什么新的权限我需要要求才能使这项工作?

我查看了Android权限列表,但找不到任何相似的内容.

android android-audiomanager android-7.0-nougat

38
推荐指数
3
解决办法
2万
查看次数

Android - 按展示名称查找联系人

我正在尝试通过显示名称找到联系人.目标是打开此联系人并向其添加更多数据(特别是更多的电话号码),但我很难找到我想要更新的联系人.

这是我正在使用的代码:

    public static String findContact(Context context) {

    ContentResolver contentResolver = context.getContentResolver();
    Uri uri = ContactsContract.CommonDataKinds.Phone.CONTENT_FILTER_URI;
    String[] projection = new String[] { PhoneLookup._ID };
    String selection = ContactsContract.CommonDataKinds.Phone.DISPLAY_NAME + " = ?";
    String[] selectionArguments = { "John Johnson" };
    Cursor cursor = contentResolver.query(uri, projection, selection, selectionArguments, null);

    if (cursor != null) {
        while (cursor.moveToNext()) {
            return cursor.getString(0);
        }
    }
    return "John Johnson not found";
}
Run Code Online (Sandbox Code Playgroud)

我确实有一个名为"John Johnson"的联系人,但该方法始终返回"未找到".我也尝试用一个名字搜索一个联系人,这没什么区别.

我怀疑它的东西,错误的URI,选择或选择论,因为我无法找到搜索与给定的显示名称接触的任何例子在线,似乎显示名称是一种特殊的信息,例如从不同一个电话号码.

任何想法如何找到约翰逊?


更新:我发现了如何通过显示名称找到联系人:

        ContentResolver contentResolver = context.getContentResolver();
    Uri uri = Data.CONTENT_URI;
    String[] projection …
Run Code Online (Sandbox Code Playgroud)

android android-contentresolver

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

ITelephony.endCall()不再可用于阻止Android 8 / Android O / API 26中的呼叫

我有一个使用以下代码阻止呼叫的应用程序:

TelephonyManager telephonyManager = 
    (TelephonyManager) getSystemService(Context.TELEPHONY_SERVICE);

try {
    Class<?> telephonyManagerClass = 
        Class.forName(telephonyManager.getClass().getName());
    Method getITelephonyMethod = 
        telephonyManagerClass.getDeclaredMethod("getITelephony");
    getITelephonyMethod.setAccessible(true);
    Object iTelephony = getITelephonyMethod.invoke(telephonyManager);
    Class<?> iTelephonyClass = Class.forName(iTelephony.getClass().getName());
    Method endCallMethod = iTelephonyClass.getDeclaredMethod("endCall");
    endCallMethod.setAccessible(true);
    endCallMethod.invoke(iTelephony);
} catch (ClassNotFoundException e) {
    // ClassNotFoundException
} catch (NoSuchMethodException e) {
    // NoSuchMethodException
} catch (IllegalAccessException e) {
    // IllegalAccessException
} catch (InvocationTargetException e) {
    // InvocationTargetException
} catch (Exception e) {
    // Some other exception
}
Run Code Online (Sandbox Code Playgroud)

要工作,这需要AndroidManifest.xml中的android.permission.MODIFY_PHONE_STATE。在Android M和N中,我还必须询问用户权限Manifest.permission.CALL_PHONE。

但现在在Android 8 / Android O中,以上代码因InvocationTargetException而失败:需要MODIFY_PHONE_STATE权限

我发现了以下与此相关的StackOverflow帖子:Android-为什么endCall方法有效,但是answerRingingCall不起作用?

在这里建议我可以在PhoneInterfaceManager上使用反射(而不是像上面所做的ITelephony一样),并在end call命令中使用私有方法sendRequestAsync(int命令),并通过这样做来解决安全问题在endCall()方法中。 …

android android-8.0-oreo

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

我的Android应用程序突然需要未在AndroidManifest.xml中设置的权限.为什么?

我有一个应用程序,在过去几年只有微小的变化.昨天我向Google Play发布了一个修正错误,并注意到我的应用突然需要5个新权限:

  • android.permission.ACCESS_COARSE_LOCATION
  • android.permission.GET_ACCOUNTS
  • android.permission.READ_EXTERNAL_STORAGE maxSdkVersion = 18
  • android.permission.USE_CREDENTIALS
  • android.permission.WRITE_EXTERNAL_STORAGE

我没有对AndroidManifest.xml进行任何更改,因此没有列出这5个权限.

我正在使用Google的结算库(com.android.billing)进行应用内购买.这可能已由Android Studio自动更新.

我也升级了这些库:

  • com.android.support:appcompat-v7:22.1.1 - > 22.2.0
  • com.android.support:support-v4:22.1.1 - > 22.2.0
  • com.google.android.gms:play-services:7.3.0 - > 7.5.0

有谁知道为什么会这样?

更新与答案

@ ahmad-nawaz是对的,他的回答让我想出了这一点.这是我的问题的更详细的答案:

需要额外权限的图书馆是Google Play服务.

在Google Play Services 6.5及更高版本中,您可以(并且可能应该)定义您需要的特定API,而不是仅导入整个包.

就我而言,我只是使用了play-services-analytics,所以我在build.gradle中更改了它

compile 'com.google.android.gms:play-services:7.5.0'
Run Code Online (Sandbox Code Playgroud)

对此

compile 'com.google.android.gms:play-services-analytics:7.5.0'
Run Code Online (Sandbox Code Playgroud)

在此更改之后,原始问题中提到的所有5个权限都消失了.

以下是Google Play服务的各个API的完整列表:https://developers.google.com/android/guides/setup#split

android android-permissions

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

在测试.NET Core项目时,TeamCity不会获取xUnit测试的结果

我有一个小的.NET Core项目,其中完整的构建/测试/部署过程在Cake脚本中处理.

我有一个运行蛋糕脚本的powershell脚本.

在本地运行脚本时,我得到每个失败的xUnit测试的结果,但是当通过TeamCity的PowerShell运行程序运行相同的脚本时,我没有得到每个测试的结果,只是失败测试数量的摘要.

蛋糕任务:

Task("Test")
    .IsDependentOn("Clean")
    .Does(() =>
    {
        GetFiles("./tests/**/*.csproj")
            .ToList()
            .ForEach(file => DotNetCoreTest(file.FullPath));
    });
Run Code Online (Sandbox Code Playgroud)

这个Cake代码在引擎盖下运行"dotnet test".

在构建服务器上的PowerShell中手动运行脚本时,我得到以下输出:

Test run for c:\project\myproject\tests\Web.Tests\bin\Debug\netcoreapp2.0\Web.Tests.dll(.NETCoreApp,Version=v2.0)
Microsoft (R) Test Execution Command Line Tool Version 15.7.0
Starting test execution, please wait...
[xUnit.net 00:00:00.7397647]        Web.Tests.UnitTest1.Test1[FAIL]
Error Message:
 Assert.False() Failure
Expected: False
Actual:   True
Test Run Failed.
Total tests: 2. Passed: 1. Failed: 1. Skipped: 0.
Test Run Failed.
Run Code Online (Sandbox Code Playgroud)

使用TeamCity的PowerShell运行程序运行相同的脚本时,我得到了这个:

[14:27:45]  [Step 1/1] Test run for D:\TeamCity\buildAgent\work\7ff27c4721bc4a68\tests\Web.Tests\bin\Release\netcoreapp2.0\Web.Tests.dll(.NETCoreApp,Version=v2.0)
[14:27:45]  [Step 1/1] Microsoft (R) Test Execution Command Line …
Run Code Online (Sandbox Code Playgroud)

teamcity xunit .net-core cakebuild

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

设置移动设备上 Google 自适应广告单元的最大高度

我尝试了多种方法来限制 Google 自适应广告单元的最大高度。

我尝试在包含的 div 和 ins 标签上设置高度和最大高度。

我还尝试设置 data-ad-format="horizo​​ntal" 而不是默认值“auto”。

<div style="height: 60px; max-height: 60px">
    <!-- Responsive center ad -->
    <ins class="adsbygoogle"
         style="height: 60px; max-height: 60px;"
         data-ad-client="ca-pub-xxx"
         data-ad-slot="xxx"
         data-ad-format="horizontal"
         data-full-width-responsive="true"></ins>
    <script>
        (adsbygoogle = window.adsbygoogle || []).push({});
    </script>
</div>
Run Code Online (Sandbox Code Playgroud)

这些方法都没有任何效果,结果始终是移动设备上的 300x250 像素广告。

我做错了什么?移动设备有单独的设置吗?这一切都适用于桌面设备,但我无法限制移动设备上的广告高度。

adsense

5
推荐指数
0
解决办法
505
查看次数

使用 UseStatusCodePagesWithReExecute 时,状态码不会发送到浏览器

我有一个简单的 .NET Core 2.0 项目。这是配置方法:

public void Configure(IApplicationBuilder app, IHostingEnvironment environment)
{
  app.UseStatusCodePagesWithReExecute("/error/{0}.html");

  app.UseStaticFiles();

  app.UseMvc(routes =>
  {
    routes.MapRoute(
      name: "default",
      template: "{controller}/{action?}/{id?}",
      defaults: new { controller = "Home", action = "Index" });
    });
  }
Run Code Online (Sandbox Code Playgroud)

当我输入无效 url 时,/error/404.html 会按预期显示,但浏览器会收到 200 状态代码,而不是预期的 404 状态。

我究竟做错了什么?我可以不使用静态 html 文件作为错误页面吗?

asp.net-core

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

Lucene.net - 如何创建否定查询,即.搜索不包含某些内容的对象

我正在使用基于Lucene.net的搜索引擎在EPiServer网站上工作.

我有查询只查找具有某个pageTypeId的页面.现在我想做相反的事情,我想只找到不是某个pageTypeId的页面.那可能吗?

这是用于创建查询以仅搜索pageTypeId为1,2或3的页面的代码:

public BooleanClause GetClause()
{
    var booleanQuery = new BooleanQuery();
    var typeIds = new List<string>();
    typeIds.Add("1");
    typeIds.Add("2");
    typeIds.Add("3");

    foreach (var id in this.typeIds)
    {
        var termQuery = new TermQuery(
            new Term(IndexFieldNames.PageTypeId, id));
        var clause = new BooleanClause(termQuery, 
            BooleanClause.Occur.SHOULD);
        booleanQuery.Add(clause);
    }
    return new BooleanClause(booleanQuery, 
        BooleanClause.Occur.MUST);
}
Run Code Online (Sandbox Code Playgroud)

我想要创建一个查询,我在其中搜索pageTypeId不是"4"的页面.

我尝试用"MUST_NOT"代替"SHOULD"和"MUST",但这不起作用.


感谢@ goalie7960快速回复.这是我修改的代码,用于搜索除某些选定页面类型之外的任何内容.此搜索包括除pageTypeId"1","2"或"3"之外的所有文档:

public BooleanClause GetClause()  
{
    var booleanQuery = new BooleanQuery();  
    booleanQuery.Add(new MatchAllDocsQuery(), 
        BooleanClause.Occur.MUST);

    var typeIds = new List<string>();  
    typeIds.Add("1");  
    typeIds.Add("2");  
    typeIds.Add("3");  

    foreach (var typeId in this.typeIds)  
    {
        booleanQuery.Add(new TermQuery( …
Run Code Online (Sandbox Code Playgroud)

c# asp.net lucene.net episerver

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