Android

Android AES 加密、解密

AES加密介绍 ASE 加密、解密的关键在于秘钥、只有使用加密时使用的秘钥,才可以解密。 生成秘钥的代码网上一大堆,下面的代码可生成一个秘钥 private SecretKey generateKey(String seed) throws Exception { // 获取秘钥生成器 KeyGenerator keyGenerator = KeyGenerator.getInstance("AES"); // 通过种子初始化 SecureRandom secureRandom = new SecureRandom(); secureRandom.setSeed(seed.getBytes("UTF-8")); keyGenerator.init(128, secureRandom); // 生成秘钥并返回 return keyGenerator.generateKey(); } 然后使用秘钥进行加密 private byte[] encrypt(String content, SecretKey secretKey) throws Exception { // 秘钥 byte[] enCodeFormat = secretKey.getEncoded(); // 创建AES秘钥 SecretKeySpec key = new SecretKeySpec(enCodeFormat, "AES"); // 创建密码器 Cipher cipher = Cipher.getInstance("AES"); // 初始化加密器 cipher.init(Cipher.ENCRYPT_MODE, key); // 加密 return cipher.

继续阅读

Android蓝牙通信——AndroidBluetoothManager

转载请说明出处! 作者:kqw攻城狮 出处:个人站 | CSDN To get a Git project into your build: Step 1. Add the JitPack repository to your build file Add it in your root build.gradle at the end of repositories: allprojects { repositories { ... maven { url 'https://jitpack.io' } } } Step 2. Add the dependency dependencies { compile 'com.github.kongqw:AndroidBluetoothManager:1.0.0' } AndroidBluetoothManager 效果图 PNG GIF 基础功能 添加权限 <uses-permission android:name="android.permission.BLUETOOTH" /> <uses-permission android:name="android.

继续阅读

Android自定义雷达扫描控件

转载请说明出处! 作者:kqw攻城狮 出处:个人站 | CSDN Android 雷达扫描控件 To get a Git project into your build: Step 1. Add the JitPack repository to your build file Add it in your root build.gradle at the end of repositories: allprojects { repositories { ... maven { url 'https://jitpack.io' } } } Step 2. Add the dependency dependencies { compile 'com.github.kongqw:AndroidRadarScanView:1.0.1' } 源码:AndroidRadarScanView 效果图 XML <com.kongqw.radarscanviewlibrary.RadarScanView android:id="@+id/radarScanView" android:layout_width="match_parent" android:layout_height="match_parent" /> 初始化 radarScanView = (RadarScanView) findViewById(R.

继续阅读

Android自定义摇杆

转载请说明出处! 作者:kqw攻城狮 出处:个人站 | CSDN 效果图 源码 KqwRockerDemo 喜欢就给个star,谢谢! 功能 支持自适应大小 支持2个方向、4个方向、8个方向的摇动监听 支持摇动角度获取 可选回调模式 支持可摇动区域自定义 支持摇杆自定义 支持设置图片、色值、Shape图形 使用 <kong.qingwei.rockerlibrary.RockerView android:id="@+id/rockerView_center" android:layout_width="100dp" android:layout_height="100dp" android:layout_centerHorizontal="true" kongqw:areaBackground="#FF333333" kongqw:rockerBackground="#FF987654" kongqw:rockerRadius="15dp" /> 参数 参数 是否必须 描述 areaBackground 可选 可摇动区域的背景 rockerBackground 可选 摇杆的背景 rockerRadius 可选 摇杆半径 设置回调方式 setCallBackMode(CallBackMode mode) 参数 回调方式 描述 CALL_BACK_MODE_MOVE 有移动就立刻回调 CALL_BACK_MODE_STATE_CHANGE 状态有变化的时候回调 监听摇动角度 返回角度的取值范围:[0°,360°)

继续阅读

Android输出正弦波音频信号(左右声道对称)

转载请说明出处! 作者:kqw攻城狮 出处:个人站 | CSDN 需求:左右声道分别输出不同的音频数据,波形要是一个正弦波,左右声道还要对称! 对硬件不是很了解,说是要通过音波避障。 效果图 之前已经介绍了如何在左右声道输出不同的音频数据。 那么这里主要介绍如何模拟出波形是正弦波的音频数据。 模拟正弦波 /** * 模拟正弦波音频数据 * @param isLeft 左右声道 * @return 音频数据 */ private short[] initData(boolean isLeft) { double phase = 0.0; int amp = 10000; short[] data = new short[bufferSize]; double phaseIncrement = (2 * Math.PI * mFrequency) / mSampleRateInHz; for (int i = 0; i < bufferSize; i++) { if (isLeft) { data[i] = (short) (amp * Math.sin(phase)); } else { data[i] = (short) (-amp * Math.

继续阅读

Android左右声道的控制

转载请说明出处! 作者:kqw攻城狮 出处:个人站 | CSDN 效果图 源码 AndroidSoundManagerDemo 我这里主要是用到了AudioTrack实现的左右声道的控制,手机一般都只有两个声道,即左声道和右声道,我们在输出的时候可以选择单声道,也可以选择双声道(立体声)。 查看了AudioTrack的API,提供了play()、pause()、stop()、write()等一系列的方法。 通过write()方法,可以实现将音频数据发送出去(播放出来)。 AudioTrack对象的构造 有三个构造方法 AudioTrack (int streamType, int sampleRateInHz, int channelConfig, int audioFormat, int bufferSizeInBytes, int mode) AudioTrack (int streamType, int sampleRateInHz, int channelConfig, int audioFormat, int bufferSizeInBytes, int mode, int sessionId) AudioTrack (AudioAttributes attributes, AudioFormat format, int bufferSizeInBytes, int mode, int sessionId) 主要参数有如下几个 streamType:以什么形式播放 STREAM_VOICE_CALL STREAM_SYSTEM STREAM_RING STREAM_MUSIC STREAM_ALARM STREAM_NOTIFICATION sampleRateInHz:采样率 channelConfig:声道 AudioFormat.CHANNEL_OUT_MONO:输出单声道音频数据 AudioFormat.

继续阅读

Android蓝牙通信

转载请说明出处! 作者:kqw攻城狮 出处:个人站 | CSDN Android蓝牙通信 效果图 两台真机设备 源码 GitHub 关于蓝牙的开关控制,设置设备可见、搜索附近的蓝牙设备,已经封装到了 BluetoothManager 类 关于设备的连接、通信。已经封装到了 BluetoothService 类 注:下面的全部内容,主要是思路,具体的可以参考上面的源码,如果对你有帮助记得给个赞哦。 权限 <!-- 蓝牙的权限 --> <uses-permission android:name="android.permission.BLUETOOTH" /> <uses-permission android:name="android.permission.BLUETOOTH_ADMIN" /> 蓝牙的打开与关闭 开启蓝牙 mBluetoothAdapter = BluetoothAdapter.getDefaultAdapter(); /** * 开启蓝牙 */ public void openBluetooth() { try { mBluetoothAdapter.enable(); } catch (Exception e) { e.printStackTrace(); } } 关闭蓝牙 mBluetoothAdapter = BluetoothAdapter.getDefaultAdapter(); /** * 关闭蓝牙 */ public void closeBluetooth() { try { mBluetoothAdapter.

继续阅读