小编Mar*_*inR的帖子

使用新的swift os_log api读取日志

在iOS 10.0中不推荐使用:os_log(3)已替换为asl(3)

所以iOS 10.0显然弃用了asl(Apple System Log)api,并用非常有限的os_log api替换它.

我使用类似于下面的代码片段的内容来读取正在运行的应用程序的日志写入,以便在应用程序的uitextview中显示 - 现在它充满了弃用警告.有没有人知道使用新的os_log api读取打印日志的方法?因为我只看到写作的api(https://developer.apple.com/reference/os/1891852-logging).

import asl

let query = asl_new(UInt32(ASL_TYPE_QUERY))
let response = asl_search(nil, query)
while let message = asl_next(response) {
    var i: UInt32 = 0
    let key = asl_key(message, i)
    print(asl_get(message, key))
    ...
}
Run Code Online (Sandbox Code Playgroud)

在@Will Loew-Blosser的回答之后编辑

https://developer.apple.com/videos/play/wwdc2016/721/很好地解释了将来登录会发生什么.最大的赠品是日志以某种压缩格式存储,并且只能由新的控制台应用程序扩展.这几乎使我的任务无望.

该视频中的人(Steve Szymanski)提到"所有ASL日志API都被新API取代"和"用于搜索新日志数据的新API将不会在此版本中公开" asl_search.而这正是我所寻找的!

他还提到了我即将推出的快速API.

logging deprecated ios asl swift

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

使用cec-client将活动源设置为TV

我有cec-client在我的覆盆子pi上运行,我可以在索尼电视上切换活动源HDMI 1 - 4:

echo "tx 4F 82 10 00" | cec-client -s
echo "tx 4F 82 40 00" | cec-client -s
Run Code Online (Sandbox Code Playgroud)

我无法实现的是切换回电视作为活动源.由于电视通常具有ID 0.0.0.0,我希望以下命令可以解决这个问题,但是电视没有响应:

echo "tx 4F 82 00 00" | cec-client -s
Run Code Online (Sandbox Code Playgroud)

4 =记录器1(raspi)

F =广播

82 =活跃来源

00 00 = ID

有没有人成功完成这个非常基本的操作?

television hdmi raspberry-pi

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

Android - 检查请求是GET还是POST

我需要在我的Android应用程序中检查请求是否是POST或者在shouldInterceptRequest中的GET.见下面的代码:

public class CustomWebViewClient extends WebViewClient {

    ...

    @Override
    public WebResourceResponse shouldInterceptRequest(WebView view, String url) {
        if ("request is POST")
            Log.d("CustomWebViewClient", "request is a POST");
        else if ("request is GET")
            Log.d("CustomWebViewClient", "request is a GET");

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

是否有可能在WebViewClient的范围内确定这一点?

post android get request webviewclient

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

Android 4.4 KitKat上的shouldInterceptRequest

我有一个应用程序,它使用Android WebViewClient中的自定义方案,shouldInterceptRequest(WebView view, String url)shouldOverrideUrlLoading(WebView view, String url)拦截Web应用程序中的请求,并使用本机库从其他地方获取资源shouldInterceptRequest.在Android 4.4 KitKat之前,这已经很好了,Google已经对webView组件进行了一些重要的更改.

http://developer.android.com/guide/webapps/migrating.html#URLs

现在收到的网址shouldOverrideUrlLoading突然变得无效,看起来像这样; 定制方案:////my.pathname.com/.首先我怀疑额外的斜杠是因为Android不认为url是有效的RFC3986,但是在一系列资源提取(css,js,images)中,url开始正确并突然变为无效格式.Android 4.3中的webView将url正确保存为custom-scheme://my.pathname.com/.看起来基本网址突然变为'/'而不是'my.pathname.com'.

然后我的注意力转移到webView 4.4迁移指南中讨论的事实:

如果从应用程序的UI线程以外的任何线程调用WebView上的方法,则可能会导致意外结果.http://developer.android.com/guide/webapps/migrating.html#Threads

这也可能是我所经历的,但我还没有提出一个解决方案,我可以使用runOnUiThread()本机api获取数据并将其返回到webView内部shouldInterceptRequest.有没有人经历类似的事情?

这是我的shouldInterceptRequest代码的简化版本:

    @Override
    public WebResourceResponse shouldInterceptRequest(WebView view, String url) {
        if (urlStartsWithKnownPrefix(url)) {
            UrlFetchResult fetchRes = api.fetchUrl(url);
            String charset = "utf-8";
            String mime = fetchRes.getMimetype();
            WebResourceResponse res = new WebResourceResponse(mime, charset, new ByteArrayInputStream(fetchRes.getResult()));
            return res;
        }
        return null;
    }
Run Code Online (Sandbox Code Playgroud)

url android webview android-4.4-kitkat

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

Android 4.2.1上的库位置是否已移动?

当我尝试更新我的Android应用程序以使用4.2.1,Nexus 7时,我遇到了一个可疑问题.我正在使用我自己的.so库,在我更新之前,包含在Android 4.1版上运行正常.现在我遇到了各种各样的问题.

我在运行3.2.1的Android设备和运行4.2.1的Nexus 7上进行部署时比较了日志.图书馆被放置在两个不同的位置,这可能会导致我的问题.

ANDROID 3.2.1:

Trying to load lib /data/data/com.my.app/lib/lib_my_app_jni.so 0x407e8218
Added shared lib /data/data/com.my.app/lib/lib_my_app_jni.so 0x407e8218
Run Code Online (Sandbox Code Playgroud)

ANDROID 4.2.1(Nexus 7):

Trying to load lib /data/app-lib/com.my.app-1/lib_my_app_api_jni.so 0x4257b6c8
Added shared lib /data/app-lib/com.my.app-1/lib_my_app_api_jni.so 0x4257b6c8
Run Code Online (Sandbox Code Playgroud)

为什么突然出现在app-lib目录中?我该如何强行退回?这记录在哪里?

谢谢...

java-native-interface android shared-libraries libraries

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