小编jpa*_*alm的帖子

NetworkInfo和NetworkInterface之间的变通方法映射

我正面临2011年在跟踪器问题中报告的问题,并希望开发一个合适的解决方法.我想向用户显示所有Android设备的网络接口,并按类型分类,以及它们当前是否处于活动状态.我至少要针对API 15.

据我所知,有两种方法可以获取网络接口信息:

  1. 通过内置的Java NetworkInterface类使用NetworkInterface.getNetworkInterfaces().这将返回NetworkInterface包含如接口名称信息的对象,与接口等.对于我的设备(LG G3)相关联的所有IP地址,我得到这样的接口lo,wlan0rmnet0.这也会返回我需要的IP地址,MTU,子网掩码和广播地址等信息.

  2. 通过Android API ConnectivityManager服务使用aConnManager.getAllNetworkInfo().这将返回约20 NetworkInfo我的设备对象,大多数是不使用的,但它们包括类型MOBILE,WIFI,BLUETOOTH,等等.这不包括任何网络参数,如IP地址,MTU等如上所述.

跟踪器中解释的问题是没有内置的方法来映射NetworkInfo到a NetworkInterface或反之亦然,我想避免使用接口名称映射到适当的,NetworkInfo如果可能的话.

既然我有预感是不可能的,那么大多数供应商的所有潜在网络接口名称中都有一个列表吗?rmnet[0-9]对于使用Qualcomm基带处理器和wlan[0-9]WiFi等设备来说似乎很常见.

在最坏的情况下,我想如果接口名称与任何常见模板不匹配,我可以将接口类型列为未知.提前致谢.

android android-networking

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

重定向音频/在Android中创建备用声音路径

有没有人有经验(使用OpenSL ES,ALSA等)在Android中重定向音频或创建新的声音路径?最终目标是创建一个虚拟麦克风来替换外部麦克风,在那里可以播放音频文件,就好像他们正在对着麦克风讲话一样.访问麦克风的应用程序AudioSource.MIC应使用此备用流.它没有必要使用语音呼叫,我相信实现这种功能更难,因为它都是在无线电中完成的.

关于从哪里开始的任何想法?我已经用OpenSL和ALSA做了一些研究,但看起来我需要打包新固件(ROM)才能定义自定义音频路径.如果可以避免,我想创建一个应用程序级解决方案.电话是"扎根"(有su二进制文件).目标设备是三星Galaxy S4谷歌版(GT-i9505G).具体来说,我正在寻找音频驱动程序配置/源代码或i9505G的任何参考.

提前致谢!

编辑 - 我已经检查了CyanogenMod 10.2源代码树,以及jfltexx驱动程序和内核.以下是kernel/samsung/jf/sound的内容:http://pastebin.com/7vK8THcZ.这记录在哪里?

audio android alsa opensl

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

WPF NotifyIcon来自后台线程

我知道通常不应该从UI线程以外的线程触摸UI元素,但我是WPF的新手,我想知道我当前的工作实现是否可以改进.

我有一个仅由通知托盘图标组成的应用程序,我想从后台线程更新该图标.

这是我的Program.cs入口点:

static class Program
{
    [STAThread]
    static void Main()
    {
        Application.EnableVisualStyles();
        Application.SetCompatibleTextRenderingDefault(false);

        using (IconHandler notify = new IconHandler())
        {
            notify.Display();
            Application.Run();
        }

    }
}
Run Code Online (Sandbox Code Playgroud)

这是我的IconHandler.cs通知图标处理程序类:

class IconHandler : IDisposable
{

    NotifyIcon ni;

    public IconHandler()
    {
        ni = new NotifyIcon();
    }

    public void Display()
    {
        ni.MouseClick += new MouseEventHandler(ni_MouseClick);
        ni.Icon = Resources.icon1;
        ni.Visible = true;

        new Thread(new ThreadStart(UpdateIcon)).Start();
    }

    public void UpdateIcon()
    {
        while (true)
        {
            // reference ni directly, it updates fine
        }
    }

    public void Dispose()
    { …
Run Code Online (Sandbox Code Playgroud)

wpf

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

标签 统计

android ×2

alsa ×1

android-networking ×1

audio ×1

opensl ×1

wpf ×1