我需要我的Android應用程序在Open With
SQLite文件對話框中。如何將我的應用程序添加到「打開方式」對話框?
就像當你安裝新的網頁瀏覽器時,它會出現在Open With
對話框的HTML文件。
我該怎麼做?
我需要我的Android應用程序在Open With
SQLite文件對話框中。如何將我的應用程序添加到「打開方式」對話框?
就像當你安裝新的網頁瀏覽器時,它會出現在Open With
對話框的HTML文件。
我該怎麼做?
要出現在「打開方式」對話框中,您的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
上的標籤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);
}
}
所以我只需要了解在活動中寫什麼!)) 謝謝!
謝謝!但該應用程序如何使用該文件?在我的情況下,應用程序應該在'/ data/data/package-name/databases'中保存SQLite文件。 –
我不確定我是否理解這個問題。你如何試圖打開文件?即您嘗試讓您的應用打開的SQLite文件在哪裏? –