android中特殊应用跟系统特殊功能协助配合通讯问题

在实际项目应用中,最近有一个需求就是进入一个特殊的应用后,系统的某个功能不能起作用。当然,这个通信有很多办法可以做到。笔者可以想到的至少有如下几种

1、利用property熟悉来实现,这样的话需要增加一个特殊的属性;

2、利用数据库,在数据库中加一条记录,进入应用的时候设置一下,在系统部分可以利用content observer或者在特殊事件来的时候先判断读取一下这个值也可以;

3、利用intent,发一个特殊的intent出来,在系统这边装一个filter;

4、利用getRunningTasks,也就是activities service的运行信息来判断;

笔者比较上面这四种,实现都是可以实现的,但是利用现有系统的一些信息来解决这个问题不是更好嘛!所以笔者选择方案4.也就是做一个接口,在该接口里面判断这个特殊的应用是不是在最前台了。这一点还是非常有用,简单代码如下:

	public boolean judgeTopActivityIsReverseVideo(int status){
		   String topActivityClassName=null;

		   if(am == null)
			 am =(ActivityManager)(mContext.getSystemService(mContext.ACTIVITY_SERVICE )) ;

			List<RunningTaskInfo> runningTaskInfos = am.getRunningTasks(1);
			if(runningTaskInfos != null){
				ComponentName f=runningTaskInfos.get(0).topActivity;
				topActivityClassName=f.getClassName();
			}

			//Slog.d(TAG, "####topActivityClassName: "+topActivityClassName);
			if (topActivityClassName!=null&&topActivityClassName.startsWith("com.softwinner.reversevideo.ReverseVideo"))
			{
			    if(1 == status)
			        mReverseVideoAppEnter = true;/*In apk, reverse video comming*/
				else
			        mReverseVideoAppEnter = false;/*In apk, reverse video outgoing*/

				return true;
			} else if(true == mReverseVideoAppEnter){
               /*Enter ReverseVideo apk, reverse video signal comming,then press BACK/HOME key, apk exit,
			       but reverse video signal not exit, so we need a flag note this special status*/
			   mReverseVideoAppEnter = false;

			   return true;
			}

			return false;
	   }

通过笔者的测试实践,该方法完全可行。

android中特殊应用跟系统特殊功能协助配合通讯问题,布布扣,bubuko.com

时间: 2024-08-24 14:39:24

android中特殊应用跟系统特殊功能协助配合通讯问题的相关文章

Android中应用程序获得系统权限

Android中如何修改系统时间(应用程序获得系统权限) 在 android 的API中有提供 SystemClock.setCurrentTimeMillis()函数来修改系统时间,可惜无论你怎么调用这个函数都是没用的,无论模拟器还是真 机,在logcat中总会得到"Unable to open alarm driver: Permission denied ".这个函数需要root权限或者运行与系统进程中才可以用. 本来以为就没有办法在应用程序这一层改系统时间了,后来在网上搜了好久

【转】Android 学习笔记——利用JNI技术在Android中调用、调试C++代码

原文网址:http://cherishlc.iteye.com/blog/1756762 在Android中调用C++其实就是在Java中调用C++代码,只是在windows下编译生成DLL,在Android中会生成Linux系统下的.so文件(好吧,其实我基本没用过Linux). 没写过JNI的可以看看我之前的博客(Windows下利用Visual Studio开发的过程):http://cherishlc.iteye.com/admin/blogs/1328136 以及自动生成工具swig的

Android中StatFs获取系统/sdcard存储(剩余空间)大小

package com.orgcent.util; import java.io.File; import android.os.Environment; import android.os.StatFs; public class MemoryStatus { static final int ERROR = -1; /** * 外部存储是否可用 * @return */ static public boolean externalMemoryAvailable() { return andr

android中调用系统的发送短信、发送邮件、打电话功能

1 调用发送短信功能: Uri smsToUri = Uri.parse("smsto:"); Intent sendIntent = new Intent(Intent.ACTION_VIEW, smsToUri); sendIntent.putExtra("address", "123456"); //电话号码,这行去掉的话,默认就没有电话 sendIntent.putExtra("sms_body","短信内容

Android 监听 Android中监听系统网络连接打开或者关闭的实现代码

本篇文章对Android中监听系统网络连接打开或者关闭的实现用实例进行了介绍.需要的朋友参考下 很简单,所以直接看代码 复制代码 代码如下: package xxx; import android.content.BroadcastReceiver;  import android.content.Context;  import android.content.Intent;  import android.net.ConnectivityManager;  import android.ne

Android中Xposed框架篇---修改系统位置信息实现自身隐藏功能

一.前言 前文已经介绍了Xposed框架的基本使用规则,本文主要来介绍一个实际案例就是如何通过这个框架来修改系统的地理位置信息来实现隐藏功能,在如今社交工具的发展特别是微信,他有一个实时位置共享功能,那么对于那些不是单身狗的同学来说可能会有些蛋疼,哪天媳妇要查岗发送位置,结果你不在她期望的位置这时候就尴尬了,而且朋友圈在分享内容的时候可以选择当前位置,有的屌丝就像我一样没钱但是又想到处旅游,那么这时候咋们就可以一本正经的装个逼了. 二.定位原理 看到上面说的那么多,感觉这个功能必须要搞起来了,好

Android中通过进程注入技术修改系统返回的Mac地址

致谢 感谢看雪论坛中的这位大神,分享了这个技术:http://bbs.pediy.com/showthread.php?t=186054,从这篇文章中学习到了很多内容,如果没有这篇好文章,我在研究的过程中会遇到很多困难,说不定我就放弃了~~在此感谢他. 前言 之前的几篇文章都是在介绍了OC的相关知识,之前的半个月也都是在搞IOS的相关东西,白天上班做Android工作,晚上回家还有弄IOS,感觉真的很伤了.不过OC的知识也学习了差不多了.不过在这段时间遗留了很多Android方面的问题都没有进行

Android中的自定义Adapter(继承自BaseAdapter)——与系统Adapter的调用方法一致——含ViewHolder显示效率的优化(转)

Android中很多地方使用的是适配器(Adapter)机制,那我们就要好好把这个Adapter利用起来,并且用出自己的特色,来符合我们自行设计的需要喽~~~ 下面先上一个例子,是使用ViewHolder进行显示效率优化过的工程: package com.test.listviewsimpleadapter;    import java.util.ArrayList;  import java.util.HashMap;  import java.util.List;  import java

Android中消息系统模型和Handler Looper

作为Android中大量使用的Handler,结合Thread使其具有众多的使用形式和方法, 让我一时感觉这个东西有些玄乎,不明所以然,这到底是一个什么样的存在呢?通过网上 资料和源码的学习,这个Handler也差不多弄清楚了,现在总结下这个学习结果. 一 Handler作用和概念 通过官方文档了解到Handler的大致概念是: Handler能够让你发送和处理消息,以及Runnable对象:每个Handler对象对应一个Thread和 Thread的消息队列.当你创建一个Handler时,它就