Android Caller-ID Setzen?

bruce85

Bekanntes Mitglied
Hallo nochmal,
ich versuche schon seit einiger Zeit die Caller-ID über meine App zu ändern, leider ohne erfolg.

Hier ist mal der Code:
Java:
try 
	    {
	        Class <?> phoneFactoryClass = Class.forName("com.android.internal.telephony.PhoneFactory");

	        try
	        {
	            Method getDefaultPhoneMethod = phoneFactoryClass.getDeclaredMethod("getDefaultPhone");              
	            Method makeDefaultPhoneMethod = phoneFactoryClass.getMethod("makeDefaultPhone" , Context.class);                

	            try
	            {                       
	                makeDefaultPhoneMethod.invoke(null, this);
	                Object defaultPhone = getDefaultPhoneMethod.invoke(null);

	                Class <?> phoneInterface = Class.forName("com.android.internal.telephony.Phone");
	                Method getPhoneServiceMethod = phoneInterface.getMethod("setOutgoingCallerIdDisplay", int.class, Message.class);

	                getPhoneServiceMethod.invoke(defaultPhone, 1, null);                    
	            }
	            catch (InvocationTargetException ex) 
	            {
	                ex.printStackTrace();                   
	            }
	            catch (IllegalAccessException ex) 
	            {
	                ex.printStackTrace();                   
	            }       
	        }
	        catch (NoSuchMethodException ex) 
	        {
	            ex.printStackTrace();                   
	        }           
	    }
	    catch (ClassNotFoundException ex) 
	    {
	        ex.printStackTrace();                   
	    }

In der AndroidManifest-Datei habe ich folgende berechtigungen hinzugefügt:
Java:
<uses-permission android:name="android.permission.READ_PHONE_STATE" />
<uses-permission android:name="android.permission.CALL_PHONE" />
<uses-permission android:name="android.permission.ACCESS_NETWORK_STATE" />
<uses-permission android:name="android.permission.PROCESS_OUTGOING_CALLS" />
<uses-permission android:name="android.permission.INTERACT_ACROSS_USERS_FULL" />

Irgendwie klappt das nicht, ich erhalte folgende fehlermeldung:
Java:
05-27 20:37:09.428: D/AndroidRuntime(2628): Shutting down VM
05-27 20:37:09.428: W/dalvikvm(2628): threadid=1: thread exiting with uncaught exception (group=0x41865da0)
05-27 20:37:09.438: E/AndroidRuntime(2628): FATAL EXCEPTION: main
05-27 20:37:09.438: E/AndroidRuntime(2628): Process: de.test.testapp, PID: 2628
05-27 20:37:09.438: E/AndroidRuntime(2628): java.lang.SecurityException: Permission Denial: broadcast from de.test.testapp asks to run as user -1 but is calling from user 0; this requires android.permission.INTERACT_ACROSS_USERS_FULL or android.permission.INTERACT_ACROSS_USERS
05-27 20:37:09.438: E/AndroidRuntime(2628): 	at android.os.Parcel.readException(Parcel.java:1465)
05-27 20:37:09.438: E/AndroidRuntime(2628): 	at android.os.Parcel.readException(Parcel.java:1419)
05-27 20:37:09.438: E/AndroidRuntime(2628): 	at android.app.ActivityManagerProxy.broadcastIntent(ActivityManagerNative.java:2586)
05-27 20:37:09.438: E/AndroidRuntime(2628): 	at android.app.ContextImpl.sendStickyBroadcastAsUser(ContextImpl.java:1688)
05-27 20:37:09.438: E/AndroidRuntime(2628): 	at android.content.ContextWrapper.sendStickyBroadcastAsUser(ContextWrapper.java:459)
05-27 20:37:09.438: E/AndroidRuntime(2628): 	at com.android.internal.telephony.gsm.GsmServiceStateTracker.updateSpnDisplay(GsmServiceStateTracker.java:1587)
05-27 20:37:09.438: E/AndroidRuntime(2628): 	at com.android.internal.telephony.gsm.MultiSimGsmServiceStateTracker.updateSpnDisplay(MultiSimGsmServiceStateTracker.java:605)
05-27 20:37:09.438: E/AndroidRuntime(2628): 	at com.android.internal.telephony.gsm.GsmServiceStateTracker.pollStateDone(GsmServiceStateTracker.java:2471)
05-27 20:37:09.438: E/AndroidRuntime(2628): 	at com.android.internal.telephony.gsm.GsmServiceStateTracker.pollState(GsmServiceStateTracker.java:2129)
05-27 20:37:09.438: E/AndroidRuntime(2628): 	at com.android.internal.telephony.gsm.GsmServiceStateTracker.handleMessage(GsmServiceStateTracker.java:905)
05-27 20:37:09.438: E/AndroidRuntime(2628): 	at com.android.internal.telephony.gsm.MultiSimGsmServiceStateTracker.handleMessage(MultiSimGsmServiceStateTracker.java:331)
05-27 20:37:09.438: E/AndroidRuntime(2628): 	at android.os.Handler.dispatchMessage(Handler.java:102)
05-27 20:37:09.438: E/AndroidRuntime(2628): 	at android.os.Looper.loop(Looper.java:157)
05-27 20:37:09.438: E/AndroidRuntime(2628): 	at android.app.ActivityThread.main(ActivityThread.java:5356)
05-27 20:37:09.438: E/AndroidRuntime(2628): 	at java.lang.reflect.Method.invokeNative(Native Method)
05-27 20:37:09.438: E/AndroidRuntime(2628): 	at java.lang.reflect.Method.invoke(Method.java:515)
05-27 20:37:09.438: E/AndroidRuntime(2628): 	at com.android.internal.os.ZygoteInit$MethodAndArgsCaller.run(ZygoteInit.java:1265)
05-27 20:37:09.438: E/AndroidRuntime(2628): 	at com.android.internal.os.ZygoteInit.main(ZygoteInit.java:1081)
05-27 20:37:09.438: E/AndroidRuntime(2628): 	at dalvik.system.NativeStart.main(Native Method)

aus diese fehlermeldung werde ich auch nicht Schlau.

Kann mir Vielleicht jemand helfen, wie ich das hinbekommen kann?

Danke schonmal für die Hilfe.

MfG
 

Neue Themen


Oben