Ausgekapselte Preferences

  • Antworten:2
AlCap0rn
  • Forum-Beiträge: 32

03.07.2012, 11:02:27 via Website

Moin moin!

Ich habe (mal wieder) ein klitzekleines Problem.

Ich habe eine bestehendes Programm, welches ich um meine Funktionen erweitern möchte. Also kapsel ich jede Klasse in eine andere Klasse damit ich über ein eigenes Package verfüge!

Sieht wie folgt aus: com.android.Car kapsel ich in die Klasse com.my.package.MyCar, etwa so:

1package com.mypackage.MyCar;
2
3import com.android.Car;
4
5public class MyCar extends Car { }

In der Manifest gebe ich nun mein Package an und jeweils meine Klasse. Und unter der Haube läuft halt com.android.Car. Das funktioniert alles ganz wunderbar.

Allerdings muckt Android bei den Preferences ein wenig rum. Bei mir handelt es sich um die LatinIME die ich erweitern möchte!

Hat jemand vllt eine Ahnung was ich noch beachten muss???


1<manifest xmlns:android="http://schemas.android.com/apk/res/android"
2 package="com.bla.inputmethod.bla.SIP" android:versionCode="00001" android:versionName="Version 0.00001 #00001 [201206140951]">
3
4 <original-package android:name="com.android.inputmethod.latin" />
5
6 <uses-permission android:name="android.permission.VIBRATE"/>
7 <uses-permission android:name="android.permission.READ_USER_DICTIONARY" />
8 <uses-permission android:name="android.permission.WRITE_USER_DICTIONARY" />
9 <uses-permission android:name="android.permission.RECORD_AUDIO" />
10 <uses-permission android:name="android.permission.READ_CONTACTS" />
11
12 <application android:label="@string/english_ime_name"
13 android:backupAgent=".BlaSIPBackupAgent"
14 android:killAfterRestore="false">
15
16 <service android:name=".BlaSIP"
17 android:label="@string/english_ime_name"
18 android:permission="android.permission.BIND_INPUT_METHOD">
19 <intent-filter>
20 <action android:name="android.view.InputMethod" />
21 </intent-filter>
22 <meta-data android:name="android.view.im" android:resource="@xml/method" />
23 </service>
24
25 <activity android:name=".BlaSIPSettings" android:label="@string/english_ime_settings">
26 <intent-filter>
27 <action android:name="android.intent.action.MAIN"/>
28 </intent-filter>
29 </activity>
30
31 <activity android:name=".BlaSIPInputLanguageSelection"
32 android:label="@string/language_selection_title">
33 <intent-filter>
34 <action android:name="android.intent.action.MAIN"/>
35 <action android:name="com.android.inputmethod.latin.INPUT_LANGUAGE_SELECTION"/>
36 <category android:name="android.intent.category.DEFAULT" />
37 </intent-filter>
38 </activity>
39 </application>
40</manifest>

und die Überladung der Klasse wie folgt:

1package com.bla.inputmethod.bla.SIP;
2
3import com.android.inputmethod.latin.LatinIMESettings;
4
5public class BlaSIPSettings extends LatinIMESettings { }

Antworten
Ultimate Software
  • Forum-Beiträge: 110

03.07.2012, 16:13:10 via Website

Entschuldige, ist jetzt OT aber heißt dein Package wirklich com.android.car oder war das ein Beispiel?

Wäre der Name überhaupt erlaubt....oder zumindest "OK"? Dein eigenes Package sieht dann ja wie ein "offizielles" aus.... technisch würde es natürlich gehen, da die original Klassen ja nicht das "com." davor haben, aber ist das die "feine Art" ??

<td class="alt1"> <!-- google_ad_section_start -->Mehrere WLANs?? Versuch doch mal den <a href="http://goo.gl/7ojEp&quot; target="_blank">SSID Selector</a>: <img src="images/smilies/extra/thumbsup.gif" border="0" alt="" title="Thumbsup" class="inlineimg" /><!-- google_ad_section_end --> </td>

Antworten
AlCap0rn
  • Forum-Beiträge: 32

04.07.2012, 15:23:15 via Website

Das war nur ein Beispiel haha

Übrings habe ich die Lösung herausgefunden. Das lag an der LatinIME, welches noch eine method.xml datei hatte, wo ich den Pfad ebenfalls eintragen musste.

Antworten