android 手机Phone进程下无权限发送短信问题的解决办法

使用背景:

最近公司开发了一款App,是通过配置android:sharedUserId="android.uid.phone"  及android:process="com.android.phone"让我的app运行在phone进程中并共享了用户。

但是默认phone进程下没有权限发送短信,调用smsManager.sendTextMessage发短信的时候报没有权限的异常!

解决方法:

既然phone进程中不让发短信,那么我把发短信的逻辑放到另外一个进程中的service中,然后在phone进程中启用该service,岂不是可以解决,但是有一个问题就是不知道在phone进程中能不能直接启动这个service呢?通过试验发现竟然可以启动,好神奇! 但是还发现启动service只能通过startService()方法去启动,如果通过bindService去启动的话,返回的binder的类型是BinderProxy类型的,看来系统是把它当成进程间通信来处理了,可能需要通过AIDL去处理才能用,具体本人没试验,有兴趣的小伙伴可以试试。

你可能感兴趣的:(android,学习)