Android----get the current app package name, the name of the current activity, whether the System desktop, service class

Source: Internet
Author: User
<span id="Label3"></p><p><p><span style="font-size: 18px; background-color: rgb(255,255,51)">1. Get the current app package name</span></p></p><p><p><span style="font-size: 18px">public static String Getrunningactivityname (context Context) {<br><span style="white-space: pre"></span>Activitymanager activitymanager= (activitymanager) Context.getsystemservice (context.activity_service);<br><span style="white-space: pre"></span>Full class name<br><span style="white-space: pre"></span>String runningactivity=activitymanager.getrunningtasks (1). get (0). topactivity.getclassname ();<br><span style="white-space: pre"></span>String contextactivity = runningactivity.substring (runningactivity.lastindexof (".") +1);<br><span style="white-space: pre"></span>Return contextactivity;<br><span style="white-space: pre"></span>}<br></span></p></p><p><p><span style="font-size: 18px; background-color: rgb(255,255,0)">2. Get the name of the current activity</span></p></p><p><p><span style="font-size: 18px">public static String Getapppackagename (context Context) {<br><span style="white-space: pre"></span>Activitymanager Activitymanager = (activitymanager) Context.getsystemservice (context.activity_service);<br><span style="white-space: pre"></span>list<activitymanager.runningtaskinfo> TaskInfo = Activitymanager.getrunningtasks (1);<br><span style="white-space: pre"></span>ComponentName componentinfo = Taskinfo.get (0). topactivity;<br><span style="white-space: pre"></span>LOG.D ("lixx", "current application:" + componentinfo.getpackagename ());<br><span style="white-space: pre"></span>return Componentinfo.getpackagename ();<br><span style="white-space: pre"></span>}<br></span></p></p><p><p><span style="font-size: 18px; background-color: rgb(255,255,0)">3. Whether the system desktop is inferred</span></p></p><p><span style="font-size: 18px">/**<br><span style="white-space: pre"><span style="white-space: pre"></span></span>* Infer if the current interface is a desktop<br><span style="white-space: pre"><span style="white-space: pre"></span></span>*/<br><span style="white-space: pre"><span style="white-space: pre"></span></span>Private Boolean ishome () {<br><span style="white-space: pre"><span style="white-space: pre"></span></span>Activitymanager Mactivitymanager = (activitymanager) Getsystemservice (context.activity_service);<br><span style="white-space: pre"><span style="white-space: pre"></span></span>list<runningtaskinfo> RTI = Mactivitymanager.getrunningtasks (1);<br><span style="white-space: pre"><span style="white-space: pre"></span></span>Return gethomes (). contains (rti.get (0). topactivity.getpackagename ());<br><span style="white-space: pre"><span style="white-space: pre"></span></span>}<br><br><br><span style="white-space: pre"><span style="white-space: pre"></span></span>/**<br><span style="white-space: pre"><span style="white-space: pre"></span></span>* Get app package names for apps that belong to the desktop<br><span style="white-space: pre"><span style="white-space: pre"></span></span>*<br><span style="white-space: pre"><span style="white-space: pre"></span></span>* @return Returns a list of strings including all package names<br><span style="white-space: pre"><span style="white-space: pre"></span></span>*/<br><span style="white-space: pre"><span style="white-space: pre"></span></span>Private list<string> gethomes () {<br><span style="white-space: pre"><span style="white-space: pre"></span></span>list<string> names = new arraylist<string> ();<br><span style="white-space: pre"><span style="white-space: pre"></span></span>Packagemanager Packagemanager = This.getpackagemanager ();<br><span style="white-space: pre"><span style="white-space: pre"></span></span>Intent Intent = new Intent (intent.action_main);<br><span style="white-space: pre"><span style="white-space: pre"></span></span>Intent.addcategory (intent.category_home);<br><span style="white-space: pre"><span style="white-space: pre"></span></span>list<resolveinfo> ResolveInfo = packagemanager.queryintentactivities (intent,<br><span style="white-space: pre"><span style="white-space: pre"></span></span>packagemanager.match_default_only);<br><span style="white-space: pre"><span style="white-space: pre"></span></span>For (ResolveInfo Ri:resolveinfo) {<br><span style="white-space: pre"><span style="white-space: pre"></span></span>Names.add (ri.activityInfo.packageName);<br><span style="white-space: pre"><span style="white-space: pre"></span></span>}<br><span style="white-space: pre"><span style="white-space: pre"></span></span>Return names;<br><span style="white-space: pre"><span style="white-space: pre"></span></span>}<br></span></p><p><p><span style="font-size: 18px; background-color: rgb(255,255,0)">4, the typical service class</span></p></p><p><span style="font-size: 18px">public class Floatwindowservice extends Service {<br><br><br><span style="white-space: pre"><span style="white-space: pre"></span></span>/**<br><span style="white-space: pre"><span style="white-space: pre"></span></span>* Used to create or remove suspended windows in the Thread.<br><span style="white-space: pre"><span style="white-space: pre"></span></span>*/<br><span style="white-space: pre"><span style="white-space: pre"></span></span>Private Handler Handler = new Handler ();<br><br><br><span style="white-space: pre"><span style="white-space: pre"></span></span>/**<br><span style="white-space: pre"><span style="white-space: pre"></span></span>Timer Periodically check whether a suspended window should be created or removed at the Moment.<br><span style="white-space: pre"><span style="white-space: pre"></span></span>*/<br><span style="white-space: pre"><span style="white-space: pre"></span></span>Private Timer timer;<br><br><br><span style="white-space: pre"><span style="white-space: pre"></span></span>@Override<br><span style="white-space: pre"><span style="white-space: pre"></span></span>Public IBinder Onbind (Intent Intent) {<br><span style="white-space: pre"><span style="white-space: pre"></span></span>Return null;<br><span style="white-space: pre"><span style="white-space: pre"></span></span>}<br><br><br><span style="white-space: pre"><span style="white-space: pre"></span></span>@Override<br><span style="white-space: pre"><span style="white-space: pre"></span></span>public int Onstartcommand (Intent Intent, int flags, int Startid) {<br><span style="white-space: pre"><span style="white-space: pre"></span></span>Turn on the timer and refresh every 0.5 seconds<br><span style="white-space: pre"><span style="white-space: pre"></span></span>if (timer = = Null) {<br><span style="white-space: pre"><span style="white-space: pre"></span></span>Timer = new Timer ();<br><span style="white-space: pre"><span style="white-space: pre"></span></span>Timer.scheduleatfixedrate (new refreshtask (), 0, 500);<br><span style="white-space: pre"><span style="white-space: pre"></span></span>LOG.D ("lixx", "===== timed refresh, Monitor the status of the suspended window =====");<br><span style="white-space: pre"><span style="white-space: pre"></span></span>}<br><span style="white-space: pre"><span style="white-space: pre"></span></span>return Super.onstartcommand (intent, flags, startid);<br><span style="white-space: pre"><span style="white-space: pre"></span></span>}<br><br><br><span style="white-space: pre"><span style="white-space: pre"></span></span>@Override<br><span style="white-space: pre"><span style="white-space: pre"></span></span>public void OnDestroy () {<br><span style="white-space: pre"><span style="white-space: pre"></span></span>Super.ondestroy ();<br><span style="white-space: pre"><span style="white-space: pre"></span></span>Service is terminated at the same time also stop timer to continue execution<br><span style="white-space: pre"><span style="white-space: pre"></span></span>Timer.cancel ();<br><span style="white-space: pre"><span style="white-space: pre"></span></span>Timer = null;<br><span style="white-space: pre"><span style="white-space: pre"></span></span>}<br><br><br><span style="white-space: pre"><span style="white-space: pre"></span></span>Class Refreshtask extends TimerTask {<br><br><br><span style="white-space: pre"><span style="white-space: pre"></span></span>@Override<br><span style="white-space: pre"><span style="white-space: pre"></span></span>public void Run () {<br><span style="white-space: pre"><span style="white-space: pre"></span></span>Get the name of the current activity<br><span style="white-space: pre"><span style="white-space: pre"></span></span>String activity_name = Mywindowmanager.getrunningactivityname (getapplicationcontext ());<br><span style="white-space: pre"><span style="white-space: pre"></span></span>LOG.D ("lixx", "activity_name---->" + activity_name);<br><span style="white-space: pre"><span style="white-space: pre"></span></span>Get the application package name<br><span style="white-space: pre"><span style="white-space: pre"></span></span>String pck_name = Mywindowmanager.getapppackagename (getapplicationcontext ());<br><span style="white-space: pre"><span style="white-space: pre"></span></span>LOG.D ("lixx", "pck_name---->" + pck_name);<br><span style="white-space: pre"><span style="white-space: pre"></span></span><br><span style="white-space: pre"><span style="white-space: pre"></span></span>The current interface is the desktop, and there is no hover window display. Creates a suspended window.<br><span style="white-space: pre"><span style="white-space: pre"></span></span>If (ishome ()) {<br><span style="white-space: pre"><span style="white-space: pre"></span></span>Handler.post (new Runnable () {<br><span style="white-space: pre"><span style="white-space: pre"></span></span>@Override<br><span style="white-space: pre"><span style="white-space: pre"></span></span>public void Run () {<br><span style="white-space: pre"><span style="white-space: pre"></span></span>LOG.D ("lixx", "desktop, Remove the hover Window!") ");<br><span style="white-space: pre"><span style="white-space: pre"></span></span>Mywindowmanager.removesmallwindow (getapplicationcontext ());<br><span style="white-space: pre"><span style="white-space: pre"></span></span>}<br><span style="white-space: pre"><span style="white-space: pre"></span></span>});<br><span style="white-space: pre"><span style="white-space: pre"></span></span>}else if (! Textutils.isempty (activity_name)) {<br><span style="white-space: pre"><span style="white-space: pre"></span></span>LOG.D ("lixx", "activity_name is not null");<br><span style="white-space: pre"><span style="white-space: pre"></span></span>If (MYWINDOWMANAGER.ISSHOWINGYKQ (activity_name) && pck_name.equals ("com.ysten.istouch.client.screenmoving ")){<br><span style="white-space: pre"><span style="white-space: pre"></span></span>Handler.post (new Runnable () {<br><span style="white-space: pre"><span style="white-space: pre"></span></span>@Override<br><span style="white-space: pre"><span style="white-space: pre"></span></span>public void Run () {<br><span style="white-space: pre"><span style="white-space: pre"></span></span>Mywindowmanager.createsmallwindow (getapplicationcontext ());<br><span style="white-space: pre"><span style="white-space: pre"></span></span>}<br><span style="white-space: pre"><span style="white-space: pre"></span></span>});<br><span style="white-space: pre"><span style="white-space: pre"></span></span>}else{<br><span style="white-space: pre"><span style="white-space: pre"></span></span>Handler.post (new Runnable () {<br><span style="white-space: pre"><span style="white-space: pre"></span></span>@Override<br><span style="white-space: pre"><span style="white-space: pre"></span></span>public void Run () {<br><span style="white-space: pre"><span style="white-space: pre"></span></span>LOG.D ("lixx", "remote Control Interface.") Remove the Suspended window!</span></p><p><p>");<br><span style="white-space: pre"></span>Mywindowmanager.removesmallwindow (getapplicationcontext ());<br><span style="white-space: pre"></span>}<br><span style="white-space: pre"></span>});<br><span style="white-space: pre"></span>}<br><span style="white-space: pre"></span>}else{<br><span style="white-space: pre"></span>Handler.post (new Runnable () {<br><span style="white-space: pre"></span>@Override<br><span style="white-space: pre"></span>public void Run () {<br><span style="white-space: pre"></span>Mywindowmanager.removesmallwindow (getapplicationcontext ());<br><span style="white-space: pre"></span>}<br><span style="white-space: pre"></span>});<br><span style="white-space: pre"></span>}<br><span style="white-space: pre"></span>}<br><br><br><span style="white-space: pre"></span>}<br></p></p> <p><p>Android----get the current app package name, the name of the current activity, whether the System desktop, service class</p></p></span>

Contact Us

The content source of this page is from Internet, which doesn't represent Alibaba Cloud's opinion; products and services mentioned on that page don't have any relationship with Alibaba Cloud. If the content of the page makes you feel confusing, please write us an email, we will handle the problem within 5 days after receiving your email.

If you find any instances of plagiarism from the community, please send an email to: info-contact@alibabacloud.com and provide relevant evidence. A staff member will contact you within 5 working days.

A Free Trial That Lets You Build Big!

Start building with 50+ products and up to 12 months usage for Elastic Compute Service

  • Sales Support

    1 on 1 presale consultation

  • After-Sales Support

    24/7 Technical Support 6 Free Tickets per Quarter Faster Response

  • Alibaba Cloud offers highly flexible support services tailored to meet your exact needs.