Ich habe dies sehr unpeculiar exception.The Sache haben, ist ich diese App haben, die eine Schaltflächejava.lang.SecurityException: ohne Erlaubnis android.permission.BIND_INPUT_METHOD nur für <= 2,2
InputMethodService
zu beginnen hat, dass startet so
public class MyGroovyIme extends InputMethodService {
und so sieht es in manifest aus.
<service
android:name=".MyGroovyIme"
android:enabled="true"
android:exported="true"
android:permission="android.permission.BIND_INPUT_METHOD" >
<intent-filter>
<action android:name="android.view.InputMethod" />
<!-- <category android:name="android.intent.category.DEFAULT" /> -->
</intent-filter>
<meta-data
android:name="android.view.im"
android:resource="@xml/method" />
</service>
und das ist, wie ich Service
void startServer() {
Log.v(TAG, "Starting service...");
Intent serviceIntent = new Intent(this, MyGroovyIme.class);
startService(serviceIntent);
Log.v(TAG, "Starting service...success!!!");
// this.finish();
Log.v(TAG, "finish called...");
}
die ganze Einrichtung wie ein Zauber funktioniert starten, wenn ich es tun auf Tablet (Moto XOOM, seine 3,2), aber wenn ich es auf Geräte, die laufen auf 2,2 und 2,1 (i haben es versucht, auf 2,3 und kippe Verwendung Emulator entweder) das ist, was ich
java.lang.SecurityException: Not allowed to start service Intent { cmp=com.spp.ime.demo/.MyGroovyIme } without permission android.permission.BIND_INPUT_METHOD
at android.app.ContextImpl.startService(ContextImpl.java:840)
at android.content.ContextWrapper.startService(ContextWrapper.java:336)
at com.spp.ime.demo.GROOVY_IME_DEMOActivity.startServer(GROOVY_IME_DEMOActivity.java:137)
at com.spp.ime.demo.GROOVY_IME_DEMOActivity.onStartClick(GROOVY_IME_DEMOActivity.java:104)
at com.spp.ime.demo.GROOVY_IME_DEMOActivity.onClick(GROOVY_IME_DEMOActivity.java:67)
at android.view.View.performClick(View.java:2408)
at android.view.View$PerformClick.run(View.java:8816)
at android.os.Handler.handleCallback(Handler.java:587)
at android.os.Handler.dispatchMessage(Handler.java:92)
at android.os.Looper.loop(Looper.java:123)
at android.app.ActivityThread.main(ActivityThread.java:4633)
at java.lang.reflect.Method.invokeNative(Native Method)
at java.lang.reflect.Method.invoke(Method.java:521)
at com.android.internal.os.ZygoteInit$MethodAndArgsCaller.run(ZygoteInit.java:858)
at com.android.internal.os.ZygoteInit.main(ZygoteInit.java:616)
at dalvik.system.NativeStart.main(Native Method)
bekommen kann ich die Sicherheitsbedenken verstehen, aber es ist für alle Geräte gleich shouldnt oder fehle ich etwas Bestimmtes versio ns < 3.2
Ich bin nicht sicher, aber wenn ich die Erlaubnis als Attribut anstelle eines Tags zu sehen, Probleme gemeldet werden ... haben Sie es als eine einzige Erlaubnis Tag versucht ? – WarrenFaith
Sie wissen, 3.x ist anders als 2.x ... 3.x ist speziell für Tabletten .. ich denke, das verursacht Ärger ... – ngesh
@WarrenFaith ich versuchte diese Möglichkeiten als auch, aber das ist, wie es sein muss habe auch Beispiele gesehen. –