Skapa widget: Vad gör jag fel!?

Diskussion i 'Frågor, support och diskussion' startad av tkhduracell, 22 jan 2010.

  1. tkhduracell

    tkhduracell Baby Droid Medlem

    Blev medlem:
    22 jan 2010
    Inlägg:
    16
    Mottagna gillanden:
    0

    MINA ENHETER

    Hej har försökt skapa en widget separat widget utan Configprogram (App Widget Configuration Activity)

    Har har i princip kopierat guiderna rakt av men får det ändå inte att funka. Program(Widgeten) installeras korrekt på telefonen men den dyker inte upp i widget listan

    Programmet är för övrigt ett program för att kolla vad det är för mat i skolan.

    I BambaWidget.java
    Kod:
    package Bamba.Widget;
    
    imports....
    
    public class BambaWidget extends AppWidgetProvider{
    	
    @Override
    	public void onUpdate(Context context, AppWidgetManager appWidgetManager, int[] appWidgetIds) {
    		
    		RemoteViews remoteView = new RemoteViews(context.getPackageName(), R.layout.bambwidget);
    		remoteView.setTextViewText(R.id.TextView01, getDagensMat(context));
    		ComponentName thisWidget = new ComponentName(context, BambaWidget.class);
    		appWidgetManager.updateAppWidget( appWidgetIds , remoteView);
    		
    		//super.onUpdate(context, appWidgetManager, appWidgetIds);
    	}
    ... Dom andra metoderna som AppWidgetProvider har är också med och anropar sina super()-metoder...
    }
    
    i AndroidManifestet

    HTML:
    <?xml version="1.0" encoding="utf-8"?>
    
    <manifest xmlns:android="http://schemas.android.com/apk/res/android"
          package="Bamba.Widget"
          android:versionCode="1"
          android:versionName="1.0">
          
        	<receiver android:name="BambaDroidWidgetProvider" >
        		<intent-filter>
            		<action android:name="android.appwidget.action.APPWIDGET_UPDATE" />
        		</intent-filter>
        		<meta-data android:name="android.appwidget.provider"
            		       android:resource="@xml/appwidget_info"/>
    		
    	</receiver>
        	<uses-sdk android:minSdkVersion="3"/>
    </manifest> 
    
    i res/xml/appwidget_info.xml

    HTML:
    <?xml version="1.0" encoding="utf-8"?>
    <appwidget-provider 
       xmlns:android="http://schemas.android.com/apk/res/android"
        android:minWidth="294dp"
        android:minHeight="72dp"
       	android:initialLayout="@layout/bambwidget"
       	android:updatePeriodMillis="60000"
       	>
    </appwidget-provider>
    
    I widgetens layout, res/layout/bambwidget.xml

    HTML:
    <LinearLayout
    	android:id="@+id/AbsoluteLayout01" 
    	android:layout_width="fill_parent" 
    	android:layout_height="fill_parent"
    	android:background="@drawable/bg" 
    	xmlns:android="http://schemas.android.com/apk/res/android">
    	
    		<TextView 
    			android:id="@+id/TextView01"
    			android:layout_width="wrap_content"
    			android:layout_height="wrap_content"
    			android:text="@string/hello"
    			android:textSize="12sp"
    			android:typeface="sans"
    			android:textStyle="italic">
    		</TextView>
    </LinearLayout>
    
    Widgeten denna dyker alltså inte upp när man klickar för att lägga till Widget i android, samtidigt så finns den inte bland alla andra apps på telefonen.
    Vad gör jag för fel?
     
    Last edited: 22 jan 2010
  2. Kaj

    Kaj Senior Droid Medlem

    Blev medlem:
    12 jun 2009
    Inlägg:
    1 768
    Mottagna gillanden:
    44

    MINA ENHETER

    Oj. Detta skiljde sig en del från hur jag har det, men samtidigt vet jag inte vad man måste göra. Jag har t.ex en service som gör updates, och gör det inte periodiskt via android:updatePeriodMillis="60000".

    Enklast är nog att du kollar loggen när du startar emulatorn, där borde du kunna se vad som går fel, men detta skiljer iaf från min manifest:

    I min manifest har jag

    HTML:
       <supports-screens
            android:largeScreens="true"
            android:normalScreens="true"
            android:smallScreens="true"
            android:anyDensity="true" />
    
    Sedan har jag även en sektion med permissions. Vet inte om du behöver några, men jag har:

    HTML:
        <uses-permission android:name="android.permission.INTERNET" />
        <uses-permission android:name="android.permission.WAKE_LOCK" />
        <uses-permission android:name="android.permission.ACCESS_COARSE_LOCATION" />
        <uses-permission android:name="android.permission.ACCESS_FINE_LOCATION" />
        <uses-permission android:name="android.permission.ACCESS_NETWORK_STATE" />
        <uses-permission android:name="android.permission.ACCESS_WIFI_STATE" />
        <uses-permission android:name="android.permission.WRITE_EXTERNAL_STORAGE" />
    
    Snowstorm accessar ju en hel del saker på telefonen.

    Min receiver deklaration ligger dessutom i en application-sektion:

    HTML:
        <application android:icon="@drawable/snowstorm" android:label="@string/app_name" android:description="@string/app_descrip">
    
            <receiver android:name=".widgets.WidgetLarge" android:label="@string/widget_large_name">
                <intent-filter>
                    <action android:name="android.appwidget.action.APPWIDGET_UPDATE" />
                </intent-filter>
                <meta-data android:name="android.appwidget.provider" android:resource="@xml/widget_large" />
            </receiver>
        </application>
    
    
    Inom application-stycket har jag även en aktivitet som jag säger skall visas i launchern (alltså bland applikationer):

    HTML:
            <activity
                android:name=".ui.InfoActivity"
    			android:configChanges="locale"
                android:theme="@android:style/Theme.Dialog"
                android:label="@string/title_info">
                <intent-filter>
                    <action android:name="android.intent.action.MAIN" />
                    <category android:name="android.intent.category.LAUNCHER" />
                </intent-filter>
            </activity>
    
     
  3. tkhduracell

    tkhduracell Baby Droid Medlem

    Blev medlem:
    22 jan 2010
    Inlägg:
    16
    Mottagna gillanden:
    0

    MINA ENHETER

    Okej.....
    Intressant....ska testa att göra det på detta sätt istället. Återkommer med om jag lyckas :)

    SnowStorm är GRYMT! btw :D
     
  4. tkhduracell

    tkhduracell Baby Droid Medlem

    Blev medlem:
    22 jan 2010
    Inlägg:
    16
    Mottagna gillanden:
    0

    MINA ENHETER

    Ändrade om så jag har både mainprogramet och widgeten i samma .apk nu och
    cerkar funka nu. Tack!