2015-05-05 41 views

回答

2

要出現在「打開方式」對話框中,您的Android應用程序必須在其清單中聲明它處理特定意圖,然後在意圖中指定該文件的MIME類型。例如:

<intent-filter > 
    <action android:name="android.intent.action.VIEW" /> 
    <category android:name="android.intent.category.DEFAULT" /> 
    <data android:mimeType="application/x-sqlite" /> 
</intent-filter> 

請注意,SQLite的MIME類型可能無法識別,因爲我認爲這還不是一個標準。您可能希望使用application/octet-stream,然後在自己的代碼中,仔細檢查提供的文件實際上是否是有效的SQLite文件(無論如何,您都應該這樣做)。

您可以在一般here

+0

謝謝!但該應用程序如何使用該文件?在我的情況下,應用程序應該在'/ data/data/package-name/databases'中保存SQLite文件。 –

+0

我不確定我是否理解這個問題。你如何試圖打開文件?即您嘗試讓您的應用打開的SQLite文件在哪裏? –

1

上的標籤here和意向過濾器的詳細信息,這個答案我在俄羅斯的StackOverflow發現: https://ru.stackoverflow.com/a/420927/180697

<activity name="com.your.activity"> 
<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:scheme="file" /> 
    <data android:mimeType="*/*" /> 
    <data android:pathPattern=".*\\.sqlite" /> 
</intent-filter> 

這是你所需要的加入您的「活動」類別:

public void onCreate(Bundle savedInstanceState) { 
    super.onCreate(savedInstanceState); 

    setContentView(R.layout.activity_main); 
    final Intent intent = getIntent(); 
    final String action = intent.getAction(); 

    if(Intent.ACTION_VIEW.equals(action)){ 
     Uri uri = intent.getData(); 
     new File(uri.getPath()); //дальше делаем все, что надо с файлом 
    } else { 
     Log.d(TAG, "intent was something else: "+action); 
    } 
} 

所以我只需要了解在活動中寫什麼!)) 謝謝!

相關問題