当前位置: 编程技术>移动开发
本页文章导读:
▪调用其余应用 调用其他应用
Android中有Context的概念,有了Context就可以做很多事情,如打开activity、发送广播、打开文件夹和数据库、获取
classLoader、获取资源等等。
那么能获取到手机上其他应用的C.........
▪ PowerManager.WakeLock施用 PowerManager.WakeLock使用
使用PowerManager.WakeLock来保证程序运行时保持手机屏幕的恒亮。
public class WakeLockDemo extends Activity {
private PowerManager.WakeLock wakeLock = null;
//获取锁
public void acquire.........
▪ 腾挪浏览器危机 移动浏览器危机
[size=xx-small]本人手机上面用的是系统是android2.3的,最近手机安装客户端太多,翻起来觉的累,所以想着删掉点什么,仔细查看了手机上面的应用程序,惊奇的发现有的最少的.........
[1]调用其余应用
来源: 互联网 发布时间: 2014-02-18
调用其他应用
Android中有Context的概念,有了Context就可以做很多事情,如打开activity、发送广播、打开文件夹和数据库、获取
classLoader、获取资源等等。
那么能获取到手机上其他应用的Context吗?
能!有了其他应用的Context,几乎就可以做其他应用能做的任何事。
示例:
下面这个类是手机上的某个应用
package com.example; import android.app.Activity; import android.util.Log; public class InvokedActivity extends Activity { public void print(String msg) { Log.i("IA", msg); } }
下面代码是我的应用,去调用上面那个类的print方法
<?xml version="1.0" encoding="utf-8"?> <LinearLayout xmlns:android="http://schemas.android.com/apk/res/android" android:orientation="vertical" android:layout_width="fill_parent" android:layout_height="fill_parent" > <Button android:id="@+id/invoke" android:layout_width="wrap_content" android:layout_height="wrap_content" android:text="调用其它应用方法" /> </LinearLayout>
package com.invoke; import android.app.Activity; import android.content.Context; import android.os.Bundle; import android.view.View; import android.view.View.OnClickListener; import android.widget.Toast; public class TestActivity extends Activity { @Override public void onCreate(Bundle savedInstanceState) { super.onCreate(savedInstanceState); setContentView(R.layout.main); findViewById(R.id.invoke).setOnClickListener(new OnClickListener() { @Override public void onClick(View v) { invokeOtherPackage(); } }); } private void invokeOtherPackage() { try { /* CONTEXT_INCLUDE_CODE: 包含代码,可以执行此包中的代码。 CONTEXT_IGNORE_SECURITY: 忽略安全警告,不加有此功能不能用,会得到安全警告。 */ Context otherPackageContext = this.createPackageContext("com.example", Context.CONTEXT_INCLUDE_CODE | Context.CONTEXT_IGNORE_SECURITY); if (otherPackageContext != null) { //载入类 Class clazz = otherPackageContext.getClassLoader().loadClass("com.example.InvokedActivity"); if (clazz != null) { //创建实例 Object obj = clazz.newInstance(); //获取并执行print方法 clazz.getMethod("print", String.class).invoke(obj, "Ask in TestActivity"); } else { showMessage("没有获取到类"); } } else { showMessage("没有获取到其它包上下文"); } } catch (Exception e) { e.printStackTrace(); } } private void showMessage(String message) { Toast.makeText(this, message, Toast.LENGTH_SHORT).show(); } }
当点击按钮时,会调用其他应用的方法(InvokedActivity的print方法),该方法输入如下
可能你在想,是不是只有当两个应用是同一个keystore签名才可以相互调用?当不同keystore签名就不能相互调用?
错,不同keystore签名一样可以调用,这个我测试过了。
不要使用此功能来破坏其他应用,厚道点为好。
[2] PowerManager.WakeLock施用
来源: 互联网 发布时间: 2014-02-18
PowerManager.WakeLock使用
使用PowerManager.WakeLock来保证程序运行时保持手机屏幕的恒亮。
public class WakeLockDemo extends Activity { private PowerManager.WakeLock wakeLock = null; //获取锁 public void acquireWakeLock(Context context) { if (wakeLock == null) { PowerManager powerManager = (PowerManager)(context.getSystemService(Context.POWER_SERVICE)); wakeLock = powerManager.newWakeLock(PowerManager.SCREEN_DIM_WAKE_LOCK, "My Tag"); wakeLock.acquire(); } } //释放锁 public void releaseWakeLock() { if(wakeLock != null && wakeLock.isHeld()){ wakeLock.release(); wakeLock = null; } } @Override public void onCreate() { super.onCreate(); //初始化 } @Override public void onResume() { acquireWakeLock(this); super.onResume(); } @Override public void onPause() { releaseWakeLock(); super.onPause(); } }
各种锁的类型对CPU 、屏幕、键盘的影响:
PARTIAL_WAKE_LOCK: 保持CPU 运转,屏幕和键盘灯可以关闭。
SCREEN_DIM_WAKE_LOCK: 保持CPU 运转,保持屏幕显示,但可以变暗,允许键盘灯关闭。
SCREEN_BRIGHT_WAKE_LOCK:保持CPU 运转,允许保持屏幕高亮显示,允许键盘灯关闭。
FULL_WAKE_LOCK: 保持CPU 运转,保持屏幕和键盘灯都高亮显示。
ACQUIRE_CAUSES_WAKEUP: 当获取锁后,立刻亮屏,典型地使用在通知中,以让用户立刻查看。
ON_AFTER_RELEASE: 在释放锁(release())后,手机屏幕仍会继续亮一会儿。
[3] 腾挪浏览器危机
来源: 互联网 发布时间: 2014-02-18
移动浏览器危机
[size=xx-small]本人手机上面用的是系统是android2.3的,最近手机安装客户端太多,翻起来觉的累,所以想着删掉点什么,仔细查看了手机上面的应用程序,惊奇的发现有的最少的应用,或者说基本没用的客户端,ucweb,firefox等好几个浏览器。
后来仔细分析了一下也是有道理的,兄弟我平常最喜欢的几个应用,开心网,微博,新浪,凤凰网,大众点评,京东都有了自己的客户端,随便一点自动刷新,不需要去浏览器里面的好几次翻动,基本上互联网上好的应用都有了自己的客户端,所以浏览器是不是越来越被放弃,个人的一点点想法。[/size]
[size=xx-small]本人手机上面用的是系统是android2.3的,最近手机安装客户端太多,翻起来觉的累,所以想着删掉点什么,仔细查看了手机上面的应用程序,惊奇的发现有的最少的应用,或者说基本没用的客户端,ucweb,firefox等好几个浏览器。
后来仔细分析了一下也是有道理的,兄弟我平常最喜欢的几个应用,开心网,微博,新浪,凤凰网,大众点评,京东都有了自己的客户端,随便一点自动刷新,不需要去浏览器里面的好几次翻动,基本上互联网上好的应用都有了自己的客户端,所以浏览器是不是越来越被放弃,个人的一点点想法。[/size]
最新技术文章: