小编Mat*_*adt的帖子

在Windows容器中运行Visual Studio远程调试器(Docker托管)

我尝试在Windows Server 2016 TP4上的Windows容器中运行Visual Studio远程调试器.由于它在容器内运行,因此没有UI.

我尝试通过以下方式运行远程调试器:

 .\msvsmon.exe /nostatus /silent /nosecuritywarn /nofirewallwarn /noclrwarn /port 4020
Run Code Online (Sandbox Code Playgroud)

我正在以管理员用户(nt authority\system)执行上述操作.这在主机上工作正常,但在容器内部不起作用.Windows事件日志显示以下错误事件.

Msvsmon was unable to start a server named "`6D2D071453C5:4020`". 
The following error occurred: The parameter is incorrect. 
Run Code Online (Sandbox Code Playgroud)

完整的事件日志:

Get-EventLog -LogName Application -EntryType Error | format-list

Index              : 1718
EntryType          : Error
InstanceId         : 3221226473
Message            : The description for Event ID '-1073740823' in Source 'Visual Studio Remote Debugger' cannot be found.  The local computer may not have the …
Run Code Online (Sandbox Code Playgroud)

debugging containers remote-debugging docker windows-server-2016

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

如何从本机联系人/内容解析器获取联系人的Facebook ID或URL?

如何通过Facebook同步适配器获取已同步到本机联系人应用程序的联系人的Facebook ID或URL?

我浏览了不同的网址,但没有看到有关Facebook的任何信息.

我试过了

ContactsContract.Data.CONTENT_URI
ContactsContract.CommonDataKinds.Email.CONTENT_URI
ContactsContract.CommonDataKinds.Phone.CONTENT_URI
ContactsContract.Contacts.CONTENT_URI
Run Code Online (Sandbox Code Playgroud)

作为以下代码中的URI:

    Uri uri = ContactsContract.Data.CONTENT_URI;
    Cursor c = getContentResolver().query(uri, null, null, null, null);
    while (c.moveToNext()) {
        for (int i=0; i<c.getColumnCount(); i++) {
            Log.d(TAG, c.getColumnName(i) + ": " +  c.getString(i));
        }
        Log.d(TAG, "==================================");

    }
Run Code Online (Sandbox Code Playgroud)

我确实得到了一个列值

contact_status_res_package: com.facebook.katana
Run Code Online (Sandbox Code Playgroud)

在这个转储中,我也获得了联系人状态(contact_status列),但我无处可查看此联系人的facebook网址或ID.

android facebook android-contentprovider android-contacts

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

如何保护Android上的媒体内容(视频,音频)不被保存/重新分发?

常规应用程序开发人员有什么机会(我的意思是,你不是一个百万美元的内容制作公司或分销渠道提供商,而是一个普通的小型应用程序开发公司)来保护应用程序的视频/音频内容不被保存/分散式.我提到了"常规开发者",因为我在Android核心代码中已经看到索尼在DRM包中添加了一些代码部分.让我们假设我们与谷歌谈论将其包含在核心代码中并不是那么强大.

是否有任何真正安全的方法来保护Android上的视频/音频(作为应用程序的一部分).

假设(如果我错了,请纠正我):

  • 设备可以由用户植根,需要注意这一点
  • 检测设备是否已植根(在应用程序内)在Android上是不可能的,因为超级用户基本上可以伪装设备的任何状态.
  • 我们无法修改任何硬件或用户的系统(意思是:我们不会将我们的应用产品与设备捆绑在一起,该应用应该可以作为App Market上的"常规"应用下载)
  • 媒体文件/流可以在设备本地,也可以从服务器远程传输,两者都可以

我已经研究过这个主题了很多,搜索了很多,希望在这里完成所有相关的问题,我已经和一个DRM提供商(这是一个很小的公司或自由开发者很难联系,或至少获得一些真实的相关信息,技术文档和细节).

我将DRM视为一种方法,但"默默无闻"似乎并不是一种非常好的方法.此外,我还没有为常规开发人员找到任何信息或真正的解决方案/ API.

公钥加密是另一个想法,但在哪里真正安全地存储私钥?此外,我假设在这种情况下,需要重写整个媒体框架和播放器,以便将安全视频流传递给播放器.还是我弄错了?

我希望得到该领域其他经验丰富的开发人员的一些意见,因为很难在任何地方找到有关Android媒体内容保护的信息.

更新:

在我的问题的上下文中,我发现了这个问题并且它的更新很有趣:流式传输到Android MediaPlayer

android drm public-key-encryption android-mediaplayer

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

隐藏时,VideoView无法启动

我有一个AsyncTask,我可以隐藏视频视图,开始视频播放,并在视频播放时显示视频视图.

但是当视频视图设置为不可见时,视频才会启动,异步任务会一直挂在onBackground上.如果我注释掉这一行,视频就会开始播放.为什么视频视图需要可见表面?

public void walk(final View v) {

    new AsyncTask() {
        @Override
        protected void onPreExecute() {
            super.onPreExecute();
            mVideoView.setVisibility(View.INVISIBLE); // this line causes video not to start
            mVideoView.start();
        }

        @Override
        protected Object doInBackground(Object... objects) {
            while (!mVideoView.isPlaying()) {}
            return null;
        }

        @Override
        protected void onPostExecute(Object o) {
            super.onPostExecute(o);
            mVideoView.setVisibility(View.VISIBLE);
        }

    }.execute();
Run Code Online (Sandbox Code Playgroud)

为什么我这样做有一些背景知识:我试图避免在启动视频时常见的黑色闪光问题:

https://stackoverflow.com/search?q=%5Bandroid%5D+videoview+black

https://stackoverflow.com/search?q=%5Bandroid%5D+video+%5Bmediaplayer%5D+black

android android-asynctask android-mediaplayer android-videoview

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

Android注释:带注释的类Xyz_找不到它的原始版本("找不到符号类Xyz")

我使用最新的Android Annotations 2.6和IntelliJ IDEA.有时我总是对注释/类路径/编译顺序有问题.似乎不规律地发生.我今天早些时候编译了项目,然后稍后更改了res/layout-xml文件,然后我尝试构建项目并得到错误.

但是xml和java源文件中没有语法错误或任何内容.

问题是带注释的类没有找到它的原始类

cannot find symbol class Intro
Run Code Online (Sandbox Code Playgroud)

错误.

我的项目结构:

/src/
    /app/activity/Intro
    ...
/gen-annotation-processed/
    /app/activity/Intro_
    ...
/gen
    ...
Run Code Online (Sandbox Code Playgroud)

我的IDEA注释首选项:

处理器路径:

/path/to/project/ext-libs/androidannotations-2.6.jar
Run Code Online (Sandbox Code Playgroud)

处理器FQ名称:

com.googlecode.androidannotations.AndroidAnnotationProcessor
Run Code Online (Sandbox Code Playgroud)

项目的Android IDEA模块中的源文件夹:

gen
gen-annotation-processed
src
Run Code Online (Sandbox Code Playgroud)

在此输入图像描述

构建项目时在IDEA中登录时出错(通过IDEA,没有ant或maven):

在此输入图像描述

(类"简介"存在于src文件夹中,并且没有错误.)

更新:我现在正在使用它,虽然不知道在来回使用设置之后我改变了什么/在哪里.它可能实际上只是IDEA的一个问题而不是实际上与android-annotations相关,尚不确定.

通常似乎工作的是:做一个Rebuild(可能抛出编译错误,忽略).然后做一个Build(不是一个完整的重建).由于某些原因,多次编译运行在执行重建时无法正常工作,需要执行rebuild + build组合.

android annotations intellij-idea android-annotations

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

没有下划线的Android TextView链接?

我使用带有链接的TextView:

TextView tv ... 
tv.setText( Html.fromHtml(somehtml)) 
Run Code Online (Sandbox Code Playgroud)

可以通过设置属性android:textColorLink来控制链接颜色,但是我可以删除它的下划线吗?

android

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

在应用程序中以编程方式启用USB调试(在设置/应用程序/开发下)

是否可以在我的应用程序中以编程方式启用USB调试(在设置/应用程序/开发下)?

我正在查看Permission.WRITE_SETTINGShttp://developer.android.com/reference/android/provider/Settings.System.html,但我找不到合适的东西.

permissions android android-manifest

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

localStorage html5功能无法在Samsung Android设备上的WebView中运行

我有一个html5应用程序,我用WebView包装.要在页面之间存储和检索用户输入值,我使用localStorage html5功能.

它在我的Nexus 4(Android 4.4.4)上工作正常,但它不适用于三星Galaxy Tab 2(Android 4.3.x)(=没有任何反应,但在logcat中也没有错误).或者,更清楚的是:在三星上,如果从应用程序的资产文件夹中加载html页面,它就不起作用.如果我将页面放在服务器上,如下面的outcommented行,它确实有效.

但是,在Nexus 4上,从file:/// android_asset /加载,如果我从file:// path加载桌面浏览器(Chrome,Firefox)上的页面,它也可以正常工作.

更新1:我刚刚有另一个用户报告了LG设备的问题,所以它似乎不是三星特有的.

更新2:从localStorage存储和加载值可以在同一页面上的所有设备上正常工作,但不能在不同页面之间工作.在我的示例中,我可以在01_home.html上存储和检索值,但是当我转到android_asset文件夹中的另一个页面时,我再也看不到它了(在LG,三星设备上).但是在Nexus 4上工作正常.

以下是Web视图的设置.

    webView = (WebView)this.findViewById(R.id.webView);
    webViewClient = new MyWebViewClient(this);
    webViewClient.setSm(sm);
    webView.setWebViewClient(webViewClient);
    WebSettings webSettings = webView.getSettings();
    webSettings.setJavaScriptEnabled(true);
    webSettings.setDomStorageEnabled(true);
    webView.getSettings().setJavaScriptEnabled(true);
    webView.getSettings().setDomStorageEnabled(true);
    webView.getSettings().setPluginState(WebSettings.PluginState.ON);
    webView.getSettings().setAppCacheEnabled(false);
    webView.getSettings().setCacheMode(WebSettings.LOAD_NO_CACHE);
    webView.getSettings().setUseWideViewPort(true);
    webView.getSettings().setLoadWithOverviewMode(true);
    webView.getSettings().setBuiltInZoomControls(false);
    webView.getSettings().setSupportZoom(false);
    webView.getSettings().setDefaultZoom(WebSettings.ZoomDensity.FAR);

    webView.loadUrl("file:///android_asset/01_home.html"); // does NOT work!
    // webView.loadUrl("http://192.168.178.33/01_home.html"); // does work!
Run Code Online (Sandbox Code Playgroud)

页面中的本地存储代码:

// storing
var data = document.getElementById('data').value;
window.localStorage.setItem((1), data);

// reading
document.getElementById('data').value = window.localStorage.getItem(1);
Run Code Online (Sandbox Code Playgroud)

html5 android webview local-storage samsung-mobile

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

全屏应用中的通知栏问题

我在全屏模式下运行应用程序,其中全屏被定义为整个应用程序的xml主题.

<style name="MyAppTheme" parent="android:Theme">
    <item name="android:windowNoTitle">true</item>
    <item name="android:windowFullscreen">true</item>
    <item name="android:windowBackground">@null</item>
</style>
Run Code Online (Sandbox Code Playgroud)

通常它工作正常,但在某些情况下存在一些问题:

  1. 当我通过搜索按钮打开搜索对话框 - > 截图
  2. 当我打开非常长的微调器小部件并填满屏幕(以便列表通常可滚动) - > 截图

问题是,当我打开搜索对话框或微调框小部件时,系统通知栏会出现几毫秒,然后再次滚动屏幕.请参阅上面链接的屏幕截图.

我目前在NexusOne的2.2上,但同样的事情发生在2.1update1(特别是案例2)之前.

android fullscreen

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

com.android.internal.policy.impl.PhoneLayoutInflater有时会留在内存中(hprof转储)

我正在检查内存,试图通过hprof转储找到最终的内存泄漏.

我发现有时候当我通过后退按钮(完成活动)离开活动时,活动仍会保留在内存中,但它只有两个GC根,但看起来并不是很"强".

这是我的活动流程/我点击和测试的方式:

A,B,C是活动.

1)A - > B - >(返回)A

2)执行hprof转储,结果如下:

B仍在内存中,B活动的GC根中唯一的元素是:

com.myapp.android.activity.directory.B

  • mContext of com.android.internal.policy.impl.PhoneLayoutInflater

    • android.app.ContextImpl的mLayoutInflater [Stack Local]

      • java.lang.Thread [Thread]"main"的[局部变量]
  • android.app.ContextImpl的 mOuterContext [Stack Local]

    • java.lang.Thread [Thread]"main"的[局部变量]

(线程"主"似乎是UI线程)

继续从A:

3)A - > C - >(返回)A

4)执行具有以下结果的hprof转储(如预期的那样):

B不再存在于内存中,C不再存在于内存中,只有A

现在我的问题是:这个PhoneLayoutInflater来自哪里/为什么当我从B返回到A时它会留在内存中,但是在进一步转到C并返回到A之后它会消失.

显然PhoneLayoutInflater用于膨胀视图,我知道它的目的.我只是不明白为什么它会通过主UI线程中的GC根目录保存在内存中.

当我检查上面列出的GC根

[local]的java.lang.Thread [Thread]"main

它将具有以下内容:

  • com.myapp.android.activity.main的mUiThread.A [Stack Local]
    • ....
      • 这个$ 0的android.view.inputmethod.InputMethodManager $ ControlledInputConnectionWrapper [JNI Global]

我从A调用活动B和C的方式是通过常规方式 startActivity(intent)

为什么活动A的主要UI线程会以某种方式与活动B相关并引用?

android

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