我需要将我的Android应用程序放在SQLite文件的Open With
对话框中。
就像安装新的网络浏览器一样,它会显示在html文件的Open With
对话框中。
我该怎么做?
答案 0 :(得分: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文件(无论如何都应该这样做)。
答案 1 :(得分:2)
我在俄罗斯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>
这是您需要添加到Activity类的内容:
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);
}
}
所以我只需要了解在活动中写什么!)) 谢谢!