2012-12-20 85 views
4

我有一个应用程序在清单上具有以下权限。我的应用程序在Android JB 4.1.2上运行。Runtime.getRuntime()的Android权限。exec()

UPDATE:我试图在JB上运行应用程序,但它不起作用。它适用于早期的API版本。

<manifest xmlns...> 
    <uses-permission android:name="android.permission.SET_DEBUG_APP"/> 

问题是,当我执行这样的命令:

Process proc = Runtime.getRuntime().exec("service call activity 42 s16 com.android.systemui"); 
    BufferedReader bufferedReader = new BufferedReader(
    new InputStreamReader(proc.getInputStream())); 

    String line; 
    while ((line = bufferedReader.readLine()) != null) { 
     Log.e("IDSPlayer", "RESULTAT BARRA:" + line); 
    } 

结果如下:

12-20 11:17:50.110: E/IDSPlayer(23840): RESULTAT BARRA:Result: Parcel(
12-20 11:17:50.110: E/IDSPlayer(23840): RESULTAT BARRA: 0x00000000: ffffffff 00000064 00650050 006d0072 '....d...P.e.r.m.' 
12-20 11:17:50.110: E/IDSPlayer(23840): RESULTAT BARRA: 0x00000010: 00730069 00690073 006e006f 00440020 'i.s.s.i.o.n. .D.' 
12-20 11:17:50.110: E/IDSPlayer(23840): RESULTAT BARRA: 0x00000020: 006e0065 00610069 003a006c 00730020 'e.n.i.a.l.:. .s.' 
12-20 11:17:50.110: E/IDSPlayer(23840): RESULTAT BARRA: 0x00000030: 00740065 00650044 00750062 00410067 'e.t.D.e.b.u.g.A.' 
12-20 11:17:50.110: E/IDSPlayer(23840): RESULTAT BARRA: 0x00000040: 00700070 00290028 00660020 006f0072 'p.p.(.). .f.r.o.' 
12-20 11:17:50.110: E/IDSPlayer(23840): RESULTAT BARRA: 0x00000050: 0020006d 00690070 003d0064 00330032 'm. .p.i.d.=.2.3.' 
12-20 11:17:50.110: E/IDSPlayer(23840): RESULTAT BARRA: 0x00000060: 00370038 002c0033 00750020 00640069 '8.7.3.,. .u.i.d.' 
12-20 11:17:50.110: E/IDSPlayer(23840): RESULTAT BARRA: 0x00000070: 0031003d 00300030 00320037 00720020 '=.1.0.0.7.2. .r.' 
12-20 11:17:50.110: E/IDSPlayer(23840): RESULTAT BARRA: 0x00000080: 00710065 00690075 00650072 00200073 'e.q.u.i.r.e.s. .' 
12-20 11:17:50.110: E/IDSPlayer(23840): RESULTAT BARRA: 0x00000090: 006e0061 00720064 0069006f 002e0064 'a.n.d.r.o.i.d...' 
12-20 11:17:50.110: E/IDSPlayer(23840): RESULTAT BARRA: 0x000000a0: 00650070 006d0072 00730069 00690073 'p.e.r.m.i.s.s.i.' 
12-20 11:17:50.110: E/IDSPlayer(23840): RESULTAT BARRA: 0x000000b0: 006e006f 0053002e 00540045 0044005f 'o.n...S.E.T._.D.' 
12-20 11:17:50.110: E/IDSPlayer(23840): RESULTAT BARRA: 0x000000c0: 00420045 00470055 0041005f 00500050 'E.B.U.G._.A.P.P.' 
12-20 11:17:50.110: E/IDSPlayer(23840): RESULTAT BARRA: 0x000000d0: 00000000       '....   ') 

这工作完全在ICS设备,它需要有SET_DEBUG_APP许可才能正常运行。即使权限在清单上,我的新设备也无法正常工作。

另一方面,如果我通过ADB执行,该命令在这个新设备中完美工作。

我该如何解决权限问题?可能是设备的错误?

+0

请仔细阅读Android开发者文档,下面是这个权限的支持果冻豆 yokees

+0

我的问题是,没有运行Jelly Bean,它在早期API版本。 SET_DEBUG_APP来自API版本1,并且该版本没有更改。 – kriyeng

+0

抱歉,kriyen先前的回复 – yokees

回答

2

至少在Jelly Bean中,SET_DEBUG_APP不能保持,除非应用程序使用固件的签名密钥签名或安装在系统分区上。普通的SDK应用程序不能拥有此权限。

+0

谢谢,我会尝试另一种方式来做到这一点。 – kriyeng

相关问题