Registrera egen filtyp - hur?

Diskussion i 'Frågor, support och diskussion' startad av Maxxan, 7 apr 2011.

  1. Maxxan

    Maxxan Youth Droid Medlem

    Blev medlem:
    22 mar 2010
    Inlägg:
    162
    Mottagna gillanden:
    4

    MINA ENHETER

    Jag försöker registrera så att filer med en viss ändelse ska öppnas med min app (eller användaren får välja om det är flera som registrerat samma ändelse) men jag lyckas inte riktigt.

    Testade
    HTML:
    <intent-filter>
    	<action android:name="android.intent.action.VIEW" />
    	<category android:name="android.intent.category.DEFAULT" />
    	<category android:name="android.intent.category.BROWSABLE" />
    	<data android:mimeType="*/*" />
    	<data android:scheme="file" />
    	<data android:pathPattern=".*\\.mab" />
    	<data android:host="*" />
    </intent-filter>
    men om man testar att klicka på en sådan fil tex i ES File Explorer så får man först upp en lista där man får välja om det är text, bild, video etc, sen finns min app med i listan.

    Hur kan man göra så att android vet vad det är för typ så att inte första listan behöver visas? Utan mimeType så finns min app inte med alls i någon lista. Någon idé?

    Annan fråga: kan man associera en ikon med en filtyp?
     
  2. ozp

    ozp Teen Droid Medlem

    Blev medlem:
    6 maj 2010
    Inlägg:
    250
    Mottagna gillanden:
    31

    MINA ENHETER

    Filetyper finns inte i android utan där gäller bara mimetyper.

    Hur ES File Explorer har valt att implementera öppnandet av filer kan jag inte svara på men den måste skicka ett intent.

    Du kan därför låta ditt program öppna "filen" och läsa av vad som står i intentet och på så sätt göra ett intentfilter som matchar.

    Men notera att om filen öppnas i en annan file explorer kan intentet se helt annorlunda ut.
     
  3. Maxxan

    Maxxan Youth Droid Medlem

    Blev medlem:
    22 mar 2010
    Inlägg:
    162
    Mottagna gillanden:
    4

    MINA ENHETER

    Hur kan man registrera en viss fil som mimetyp då? För jag kan ju inte läsa alla textfiler tex, utan bara de som är på ett speciellt format, så då vill jag inte att min app ska finnas som ett val för alla text typer.
     
  4. mikma

    mikma Adult Droid Medlem

    Blev medlem:
    5 dec 2010
    Inlägg:
    729
    Mottagna gillanden:
    81
    Telefon:
    Sony XZ2 Compact

    MINA ENHETER

    Telefon:
    Sony XZ2 Compact
    Titta om ES File Explorer har någon inställning för att mappa fileändelser till mime-typer.
     
  5. Maxxan

    Maxxan Youth Droid Medlem

    Blev medlem:
    22 mar 2010
    Inlägg:
    162
    Mottagna gillanden:
    4

    MINA ENHETER

    Nu var ES File Explorer mest ett exempel. :) Vill att min app ska kunna användas tex om nån skickar en fil av den typen per mail och att man då kan välja "förhandsgranska" och öppna i min app. Då måste det vara rätt mime typ antar jag.
     
  6. mikma

    mikma Adult Droid Medlem

    Blev medlem:
    5 dec 2010
    Inlägg:
    729
    Mottagna gillanden:
    81
    Telefon:
    Sony XZ2 Compact

    MINA ENHETER

    Telefon:
    Sony XZ2 Compact
    Ja, har filen rätt mime-typ i mailet så ska det inte vara något problem.


    Följande bugg berör begränsningen att program inte kan lägga in egna mappningar för mime-typer globalt i Android:

    Allow applications to define MIME type to file extension mappings
    http://code.google.com/p/android/issues/detail?id=11112
     
  7. Maxxan

    Maxxan Youth Droid Medlem

    Blev medlem:
    22 mar 2010
    Inlägg:
    162
    Mottagna gillanden:
    4

    MINA ENHETER

    Aha, men finns det bara vissa förutbestämda mime typer? Jag såg ett exempel där de la in data android:mimeType="application/vnd.mytype"/. (Exempel
    Vad ska mytype vara då? Filändelsen?
     
  8. mikma

    mikma Adult Droid Medlem

    Blev medlem:
    5 dec 2010
    Inlägg:
    729
    Mottagna gillanden:
    81
    Telefon:
    Sony XZ2 Compact

    MINA ENHETER

    Telefon:
    Sony XZ2 Compact
    Mime-typen "application/vnd.mytype" ska väl vara mime-typen som bilagan i mailet har.

    Se RFC 4288, 3.2. Vendor Tree, när det gäller användning av "vnd".
     
  9. Maxxan

    Maxxan Youth Droid Medlem

    Blev medlem:
    22 mar 2010
    Inlägg:
    162
    Mottagna gillanden:
    4

    MINA ENHETER

    Okej, jag ska experimentera lite och kolla om jag lyckas registrera så "mina" filer öppnas med mitt program. Tack för hänvisningen! :)
     
  10. Maxxan

    Maxxan Youth Droid Medlem

    Blev medlem:
    22 mar 2010
    Inlägg:
    162
    Mottagna gillanden:
    4

    MINA ENHETER

    Efter flera timmars försök och googlande funderar jag på om det är möjligt. Det blir antingen att alla mime typer som e text visas att de kan öppnas med min app eller ingen. Hur jag än gör lyckas jag inte att den bara visas för vissa filtyper (viss filändelse). Är det möjligt?
     
  11. mikma

    mikma Adult Droid Medlem

    Blev medlem:
    5 dec 2010
    Inlägg:
    729
    Mottagna gillanden:
    81
    Telefon:
    Sony XZ2 Compact

    MINA ENHETER

    Telefon:
    Sony XZ2 Compact
    Om du har rätt mime-typ i mailet så borde filändelsen inte spela roll. Som redan skrivits så är det mime-typer och inte filändelser som används i Android.
     
  12. Maxxan

    Maxxan Youth Droid Medlem

    Blev medlem:
    22 mar 2010
    Inlägg:
    162
    Mottagna gillanden:
    4

    MINA ENHETER

    Jo, men det är ju inte man själv som sätter mime-typ, undan det blir "Content-Type: vnd.android.cursor.dir/email; name="2011-03-22-3.mab"" om man skickar till sig själv från android, vilket stämmer in på en massa olika filtyper. Och skickar man från gmail så blir det "Content-Type: application/octet-stream; name="2011-03-22-2.mab""
     
  13. Maxxan

    Maxxan Youth Droid Medlem

    Blev medlem:
    22 mar 2010
    Inlägg:
    162
    Mottagna gillanden:
    4

    MINA ENHETER

    Tillbaka till detta igen :D
    Jag har hittat flera trådar som säger att det funkar bara man sätter egen mime-typ, till exempel denna Set mime type. Men hur registrerar man en ny mime typ? Måste man vara en content provider? Även om jag bara vill importera backupfiler och inte delar med mig av något till någon annan.
    För i de exempel jag sett har de registrerat "application/abc" som mime typ för deras egen fil (som även har ändelsen .abc även om inte android bryr sig om det).

    Men hur registrerar man en sådan mime typ?
     
  14. mikma

    mikma Adult Droid Medlem

    Blev medlem:
    5 dec 2010
    Inlägg:
    729
    Mottagna gillanden:
    81
    Telefon:
    Sony XZ2 Compact

    MINA ENHETER

    Telefon:
    Sony XZ2 Compact
    Det är väl intent filterdeklarationen som är själva registreringen, om jag förstått rätt.
     
  15. Maxxan

    Maxxan Youth Droid Medlem

    Blev medlem:
    22 mar 2010
    Inlägg:
    162
    Mottagna gillanden:
    4

    MINA ENHETER

    Okej, men vem bestämmer vad en fil blir för mime typ? Förstår inte hur gör man en koppling mellan en filtyp och en mimetyp? Det måste ju gå att göra, annars kan man ju aldrig lägga till några nya filtyper i android, och det verkar ju märligt..?
    Okej att android bara bryr sig om mimetyper, men nån stans måste finnas en koppling mellan att en .jpg är en bild osv.

    Så man kan lägga till att "*.abc" är mimetypen "application/abc" eller hur man nu gör. Det finns ju ändå en pathPattern för att hålla koll på file extension.. Blir förvirrad! :)
     
    Last edited: 26 apr 2011
  16. mikma

    mikma Adult Droid Medlem

    Blev medlem:
    5 dec 2010
    Inlägg:
    729
    Mottagna gillanden:
    81
    Telefon:
    Sony XZ2 Compact

    MINA ENHETER

    Telefon:
    Sony XZ2 Compact
    Jag trodde det redan var utrett i tråden att kopplingen mellan filändelse och mime-typ är det problematiska. Men så länge data har rätt mime-typ så bör det fungera.
     
  17. Maxxan

    Maxxan Youth Droid Medlem

    Blev medlem:
    22 mar 2010
    Inlägg:
    162
    Mottagna gillanden:
    4

    MINA ENHETER

    Jo, men enligt andra trådar ska det gå att få att funka, bara att jag inte lyckas när jag gör på samma sätt som i deras exempel.
    Fortfarande, hur får man data att ha rätt mime-typ?? Jag har en fil som bara min app kan läsa, hur får jag den till "rätt mime-typ"? Vad bestämmer vad det är för mime-typ? Har inte riktigt förstått den biten.. :s
     
  18. mikma

    mikma Adult Droid Medlem

    Blev medlem:
    5 dec 2010
    Inlägg:
    729
    Mottagna gillanden:
    81
    Telefon:
    Sony XZ2 Compact

    MINA ENHETER

    Telefon:
    Sony XZ2 Compact
    Det verkar inte finnas någon generell lösning på problemet att mappa filändelse till mime-typ. Jag läste om någon som work-around uppmanade användaren att spara filen på sd-kortet, och sedan laddade programmet filen därifrån.
     
  19. Maxxan

    Maxxan Youth Droid Medlem

    Blev medlem:
    22 mar 2010
    Inlägg:
    162
    Mottagna gillanden:
    4

    MINA ENHETER

    Okej, det är lite trist om det inte finns något smidigt sätt att skicka en datafil mellan varandra och direkt importera den. :( Det hade varit kanon om det varit möjligt.. Men, men, går det inte så går det inte. :)