如何授予MODIFY_PHONE_STATE权限的应用程序运行在姜饼 [英] How to grant MODIFY_PHONE_STATE permission for apps ran on Gingerbread

查看:1228
本文介绍了如何授予MODIFY_PHONE_STATE权限的应用程序运行在姜饼的处理方法,对大家解决问题具有一定的参考价值,需要的朋友们下面随着小编来一起学习吧!

问题描述

我写试图修改手机通话状态的应用程序。它的工作原理以及在Android 2.2或更低,但在Android 2.3抛出,因为缺乏对android.permission.MODIFY_PHONE_STATE许可权限的一个例外(我宣布的Andr​​oidManifest.xml此权限)。任何想法?下面是异常日志:

  9月一号至15号:14:23.210:ERROR / AndroidRuntime(404):致命异常:主要
9月一日至15日:14:23.210:ERROR / AndroidRuntime(404):java.lang.RuntimeException的:无法启动接收器test.PhoneReceiver:java.lang.SecurityException异常:无论用户10031也不是当前进程android.permission.MODIFY_PHONE_STATE。
9月一日至15日:14:23.210:ERROR / AndroidRuntime(404):在android.app.ActivityThread.handleReceiver(ActivityThread.java:1780)
9月一日至15日:14:23.210:ERROR / AndroidRuntime(404):在android.app.ActivityThread.access $ 2400(ActivityThread.java:117)
9月一日至15日:14:23.210:ERROR / AndroidRuntime(404):在android.app.ActivityThread $ H.handleMessage(ActivityThread.java:978)
9月一日至15日:14:23.210:ERROR / AndroidRuntime(404):在android.os.Handler.dispatchMessage(Handler.java:99)
9月一日至15日:14:23.210:ERROR / AndroidRuntime(404):在android.os.Looper.loop(Looper.java:123)
9月一日至15日:14:23.210:ERROR / AndroidRuntime(404):在android.app.ActivityThread.main(ActivityThread.java:3647)
9月一日至15日:14:23.210:ERROR / AndroidRuntime(404):在java.lang.reflect.Method.invokeNative(本机方法)
9月一日至15日:14:23.210:ERROR / AndroidRuntime(404):在java.lang.reflect.Method.invoke(Method.java:507)
9月一日至15日:14:23.210:ERROR / AndroidRuntime(404):在com.android.internal.os.ZygoteInit $ MethodAndArgsCaller.run(ZygoteInit.java:839)
9月一日至15日:14:23.210:ERROR / AndroidRuntime(404):在com.android.internal.os.ZygoteInit.main(ZygoteInit.java:597)
9月一日至15日:14:23.210:ERROR / AndroidRuntime(404):在dalvik.system.NativeStart.main(本机方法)
 

解决方案

MODIFY_PHONE_STATE是一个系统只许可,因此应用程序不能得到它。

这可能是从平台的previous版本进行了更改,但是这是好的,因为它是唯一保护私有的API,所以如果你正在做的事情,需要它,您使用的是不支持的,并会专用的API导致像您的应用程序打破不同的构建平台。

堆栈抓取你有没有完成,所以没有办法告诉你实际做的事情。

I write an application that attempts to modify phone call state. It works well on Android 2.2 or less, but throw an exception on Android 2.3 because of the lack of permission on android.permission.MODIFY_PHONE_STATE permission (I declared this permission on AndroidManifest.xml). Any idea? Below is the exception log:

01-15 09:14:23.210: ERROR/AndroidRuntime(404): FATAL EXCEPTION: main
01-15 09:14:23.210: ERROR/AndroidRuntime(404): java.lang.RuntimeException: Unable to start receiver test.PhoneReceiver: java.lang.SecurityException: Neither user 10031 nor current process has android.permission.MODIFY_PHONE_STATE.
01-15 09:14:23.210: ERROR/AndroidRuntime(404):     at android.app.ActivityThread.handleReceiver(ActivityThread.java:1780)
01-15 09:14:23.210: ERROR/AndroidRuntime(404):     at android.app.ActivityThread.access$2400(ActivityThread.java:117)
01-15 09:14:23.210: ERROR/AndroidRuntime(404):     at android.app.ActivityThread$H.handleMessage(ActivityThread.java:978)
01-15 09:14:23.210: ERROR/AndroidRuntime(404):     at android.os.Handler.dispatchMessage(Handler.java:99)
01-15 09:14:23.210: ERROR/AndroidRuntime(404):     at android.os.Looper.loop(Looper.java:123)
01-15 09:14:23.210: ERROR/AndroidRuntime(404):     at android.app.ActivityThread.main(ActivityThread.java:3647)
01-15 09:14:23.210: ERROR/AndroidRuntime(404):     at java.lang.reflect.Method.invokeNative(Native Method)
01-15 09:14:23.210: ERROR/AndroidRuntime(404):     at java.lang.reflect.Method.invoke(Method.java:507)
01-15 09:14:23.210: ERROR/AndroidRuntime(404):     at com.android.internal.os.ZygoteInit$MethodAndArgsCaller.run(ZygoteInit.java:839)
01-15 09:14:23.210: ERROR/AndroidRuntime(404):     at com.android.internal.os.ZygoteInit.main(ZygoteInit.java:597)
01-15 09:14:23.210: ERROR/AndroidRuntime(404):     at dalvik.system.NativeStart.main(Native Method)

解决方案

MODIFY_PHONE_STATE is a system-only permission, so apps are not allowed to get it.

This may have changed from previous versions of the platform, but that is okay because it is only protecting private APIs, so if you are doing something that requires it, you are using private APIs that are not supported and will result in things like your app breaking on different builds of the platform.

The stack crawl you include is not complete, so there is no way to tell what you are actually doing.

这篇关于如何授予MODIFY_PHONE_STATE权限的应用程序运行在姜饼的文章就介绍到这了,希望我们推荐的答案对大家有所帮助,也希望大家多多支持IT屋!

查看全文
登录 关闭
扫码关注1秒登录
发送“验证码”获取 | 15天全站免登陆