我有这样的问题,我尝试以编程方式从logcat获取数据.权限也已添加到清单文件中:
<uses-permission android:name="android.permission.READ_LOGS"/>
Run Code Online (Sandbox Code Playgroud)
码:
new Thread(new Runnable() {
@Override
public void run() {
try {
Process process = Runtime.getRuntime().exec("logcat ActivityManager:I *:S");
BufferedReader bufferedReader = new BufferedReader(new InputStreamReader(process.getInputStream()));
String line;
while ((line = bufferedReader.readLine()) != null) {
reactOnString(line);
}
} catch (IOException e) {
}
}
}).start();
Run Code Online (Sandbox Code Playgroud)
但是,我无法看到其他应用程序何时启动.我正在等待下面的字符串,但它们没有出现.
2260-2566/system_process I/ActivityManager: Start proc com.android.email for activity com.android.email/.activity.MessageCompose: pid=6460 uid=10011 gids={50011, 3003, 1015, 1023, 1028}
Run Code Online (Sandbox Code Playgroud)
PS此代码在服务中运行.
我有个坏消息:从JB开始,READ_LOGS不再像以前一样工作了:
https://groups.google.com/forum/?fromgroups#!topic/android-developers/6U4A5irWang
(滚动到Dianne Hackborn的帖子,Android Develper)和这个视频:
Google I/O 2012 - 游戏开发者应该知道的十件事
(22:47)官方消息来源.
但是他还没有记录(READ_LOGS权限不报告这个),但却是混乱的根源.您现在只能访问自己的日志,而且好消息是,您不再需要获取权限(如果您的目标是Jelly Beans,那就是它......).
我想这是Android开发团队为防止恶意应用程序对用户进行间谍活动所做的妥协,也许是获取敏感信息(我不打赌每个应用程序开发人员在发布之前清除它自己的Log.d语句).
希望这可以帮助
| 归档时间: |
|
| 查看次数: |
6231 次 |
| 最近记录: |