N在ConnectivityManager方面的API变动很大。其中在移动流量部分多了个流量节省程序(不是Chrome里面那个经Google服务器中转的那个,那个国内没法用)
可以在设置下,流量使用情况里面可以开启或关闭这个功能。开启后(默认是允许后台数据),会有一个AppList,让你选择不限制数据使用的APP。如果想要关闭后台数据,可以在流量使用情况里开关后台数据。
那今天就来谈谈InWall环境下,开启DataSaver后后台流量以及推送的处理
开始有些特别处理,比如在流量节省程序开之后,关了后台数据,后台就无法连接网络,这时我们就需要启动界面时请求开启,intent需要设置一个data也就是所在程序的包名

   intent=new Intent(Settings.ACTION_IGNORE_BACKGROUND_DATA_RESTRICTIONS_SETTINGS);
        Uri uri = Uri.parse("package:com.demo.napi.DataSaver"); intent.setData(uri); startActivity(intent);

写接收器来监听流量节省开关事件。以下是我的测试结果。

        class MyReceiver extends BroadcastReceiver{
        @Override
        public void onReceive(Context context, Intent intent) {
            Log.d("MainActivity","onReceive "+ intent.getAction());
            ConnectivityManager manager = (ConnectivityManager) context.getSystemService(CONNECTIVITY_SERVICE);
            boolean isNetworkMetered =  manager.isActiveNetworkMetered();
            Log.d("MainActivity","isNetworkMetered = "+ isNetworkMetered);
            if(isNetworkMetered){
                Log.d("MainActivity","getRestrictBackgroundStatus = "+ manager.getRestrictBackgroundStatus());
                switch (manager.getRestrictBackgroundStatus()){
                    case ConnectivityManager.RESTRICT_BACKGROUND_STATUS_DISABLED:
                        //关闭了流量节省,流量不限制。
                        break;
                    case ConnectivityManager.RESTRICT_BACKGROUND_STATUS_ENABLED:
                        //开启了流量节省或者流量节省开启的状态下允许后台数据由关到开。这时服务里后台运行的流量不可以使用,假如程序不是活动,甚至数据也不可以使用。
                        break;
                    case ConnectivityManager.RESTRICT_BACKGROUND_STATUS_WHITELISTED:
                        //流量节省开启的状态下,不限制后台数据开启了,这时流量可以使用,即使程序切到后台,活动变为虚,数据也可以使用。
                        break;
                }
            }
        }
    }

再注册一下接收器

    registerReceiver(DataSaverReceiver(),
             newIntentFilter(ConnectivityManager.ACTION_RESTRICT_BACKGROUND_CHANGED));

自己尝试了下,觉得不难理解,觉得如果利用好,这个api在国内一样能有大用处,不过。。。某些国内主流软件还在使用4.0的API(不不不,我不是针对各大Bank),普及起来,难度很大啊!

前言

1980年代是电子音乐最百花齐放的年代,出现了非常多的合成器良作。由于YMO,Kraftwerk等先锋电子乐队在70年代末期的成功,以及LSI技术逐渐成熟且价格一再降低,70年代流行的模拟合成器开始退居二线,由数字合成器接替了一线的位置。数字合成器使用方法对于一般乐手更友好,使得乐手只需注意演奏技法,也不再要求使用者了解模电相关的知识才能调出自己想要的音色,极大程度降低了使用门槛。所以各个国家的各个乐队都开始引入合成器作为主音乐器(甚至包括正在流行音乐朦胧期的我国),于是在1980年代初,电子音乐开始爆发!

Roland MT-32

今天则介绍一款发布于1987年的一款MIDI音源模块,由日本罗兰公司制造的MT-32,此模块非常流行于计算机音乐制作以及DOS游戏。其采用了线性计算合成引擎混合PCM采样, 达到了非常好的合成效果,但是也同时对硬件配置要求更高,价格则自然而然高出当时主流产品的好几倍。
当然,你可能会有疑问,既然那么好,看起来技术也很先进,而且也有标准MIDI接口,岂不是能直连现在的MIDI设备?答案是并不行,General MIDI标准发布于1991年,在此之前MIDI的接口以及通信方式则是各种各样。MT-32的MIDI信息传输通道对应都与General MIDI不同。

MT-32的详细主要硬件介绍

基于Roland官方于1988年10月发布的SERVICE NOTES第三版
CPU:Intel P8098 微控制器
线性计算:Roland LA32 (MB87136A) 专有芯片
门阵列:日立 HG61H15B72F
门阵列:日立 HG61H20R36F(用于混响发生器)
数模转换器:博尔-布朗(现德州仪器) PCM54HP
MaskROM:

从这些硬件的详细情况看来,这个设备绝对是融合了80年代最顶尖科技的集合体了。
所以价格也十分可观(恐怕至今),当年(1987)售价695$(计算上通货膨胀约等于当今的1550$)
而且目前也十分难购买到,eBay和闲鱼的量都极其少,所以下文我们来讨论下如何在现代PC上模拟

如何模拟

点此查看新方法
使用Munt