一些资料
来源:互联网 发布:单机养宠物软件 编辑:程序博客网 时间:2024/05/23 20:31
Android异常分析(转)
http://www.cnblogs.com/xiyuan2016/p/6740623.html
Mtklog 分析(学习)
http://www.cnblogs.com/xiyuan2016/p/6740521.html===================================================================================
frameworks/base/services/core/java/com/android/server/am/BroadcastQueue.java
final void processNextBroadcast(boolean fromMsg) {
在 boolean skip = false; 下边添加
final String action = r.intent.getAction();final String clsName = info.activityInfo.name;if("android.intent.action.CONFIGURATION_CHANGED".equals(action) && "应用类名".equals(clsName)){ skip = true;}===================================================================================
去掉多用户后想让下拉单的多用户图标显示出来
/code2/lq80/frameworks/base/packages/SystemUI/src/com/android/systemui/statusbar/phone/QuickStatusBarHeader.java
protected void updateVisibilities() { updateAlarmVisibilities(); mEmergencyOnly.setVisibility(mExpanded && mShowEmergencyCallsOnly ? View.VISIBLE : View.INVISIBLE); mSettingsContainer.setVisibility(mExpanded ? View.VISIBLE : View.INVISIBLE); mSettingsContainer.findViewById(R.id.tuner_icon).setVisibility( TunerService.isTunerEnabled(mContext) ? View.VISIBLE : View.INVISIBLE); mMultiUserSwitch.setVisibility(mExpanded && mMultiUserSwitch.hasMultipleUsers() ? View.VISIBLE : View.INVISIBLE);}
mMultiUserSwitch.setVisibility(mExpanded && mMultiUserSwitch.hasMultipleUsers() ? View.VISIBLE : View.INVISIBLE);这句话就是控制那个多用户现实不显示的
不支持多用户后点击多用户按钮会进入添加联系人的界面
frameworks/base/packages/SystemUI/src/com/android/systemui/statusbar/phone/MultiUserSwitch.java
的onClick方法里的else里将原来的intent替换为
Intent intent = new Intent(Intent.ACTION_INSERT);
intent.setType("vnd.android.cursor.dir/person");
intent.setType("vnd.android.cursor.dir/contact");
intent.setType("vnd.android.cursor.dir/raw_contact");
就可以了。
设置里边多去掉多用户的菜单
packages/apps/Settings/AndroidManifest.xml
<activity android:name="Settings$UserSettingsActivity"这个activity里注释掉
<meta-data android:name="com.android.settings.category" android:value="com.android.settings.category.device" />就可以了。这个以后解释。
==============================================================================
播放声音
int max = mAudioManager.getStreamMaxVolume(AudioManager.STREAM_VOICE_CALL);mAudioManager.setStreamVolume(AudioManager.STREAM_VOICE_CALL, max, 0);mAudioManager.setStreamVolume(AudioManager.STREAM_MUSIC, 16, 0);setVolumeControlStream(AudioManager.STREAM_VOICE_CALL);//A: zhaopenglin for cannot play mp3 at once 20170607if (mMediaPlayer != null) { mMediaPlayer.stop(); mMediaPlayer.release(); mMediaPlayer = null;}try { mMediaPlayer = new MediaPlayer(); AssetFileDescriptor assetFileDescriptor = this.getResources().openRawResourceFd(R.raw.testmusic); if (assetFileDescriptor == null) return; mMediaPlayer.setDataSource(assetFileDescriptor.getFileDescriptor(), assetFileDescriptor.getStartOffset(), assetFileDescriptor.getLength()); assetFileDescriptor.close(); mMediaPlayer.setAudioStreamType(AudioManager.STREAM_VOICE_CALL); mMediaPlayer.prepare();} catch (IllegalStateException e) { e.printStackTrace();} catch (Exception e) { e.printStackTrace();}mMediaPlayer.setVolume(max, max);mMediaPlayer.start();mMediaPlayer.setLooping(true);
==========================================================================================================================
可分屏应用调用不能分屏应用,分屏报错
frameworks/base/packages/SystemUI/src/com/android/systemui/recents/Recents.java
@Overridepublic boolean dockTopTask(int dragMode, int stackCreateMode, Rect initialBounds, int metricsDockAction) {…………………………
boolean screenPinningActive = ssp.isScreenPinningActive();boolean isRunningTaskInHomeStack = runningTask != null && SystemServicesProxy.isHomeStack(runningTask.stackId);//add startif(runningTask != null && runningTask.topActivity.getPackageName().equals("不能分屏应用的包名")) { Toast.makeText(mContext, R.string.recents_incompatible_app_message, Toast.LENGTH_SHORT).show(); return false;}//add end
/code1/lq80/frameworks/base/packages/SystemUI/src/com/android/systemui/recents/views/RecentsViewTouchHandler.java
public final void onBusEvent(DragStartEvent event) {
……………………
if (!event.task.isDockable || event.task.getTopComponent().getPackageName().equals("不能分屏应用的包名")) { EventBus.getDefault().send(new ShowIncompatibleAppOverlayEvent());} else {
public final void onBusEvent(DragEndEvent event) {
……………………
if (!mDragTask.isDockable || mDragTask.getTopComponent().getPackageName().equals("不能分屏应用包名")) { EventBus.getDefault().send(new HideIncompatibleAppOverlayEvent());}
===========================================================================
- 一些资料
- 一些资料
- 一些资料
- 一些资料
- 一些资料
- 一些资料
- 一些资料
- 一些资料
- 一些资料
- 一些资料
- 一些资料
- 一些资料
- 一些资料
- 一些资料
- 一些资料
- 一些资料
- 一些资料
- 一些资料
- windows 10环境下 使用 msys2 + vs code 配置 c++ 的编译环境(转)
- HTML5新特性(一)
- PHP实现执行定时任务的几种思路详解
- HDU2829 浅谈四边形优化DP
- 树形动态规划
- 一些资料
- Java面试宝典
- 为什么对带www和不带www的域名ping结果不一致
- Sheldon Numbers 暴力枚举
- css 样式伪类点击与取消点击样式显示
- BigDecimal 小数精度问题
- 机器学习中的数学(1)-回归(regression)、梯度下降(gradient descent)
- ADO接口之_ConnectionPtr
- 最简单的监听软键盘显示隐藏