Android应用实现文件关联

如题,如果要实现文件关联,首先要修改AndroidManifest.xml,例子如下:
  1. <?xml version="1.0" encoding="utf-8"?> 
  2. <manifest xmlns:android="http://schemas.android.com/apk/res/android"
  3. package="com.android.sample" android:versionCode="1"
  4. android:versionName="1.0"> 
  5. <application android:icon="@drawable/icon" android:label="@string/app_name"
  6. android:debuggable="true"> 
  7. <activity android:name=".MainActivity"
  8. android:configChanges="orientation|keyboardHidden|navigation"
  9. android:label="@string/app_name"> 
  10. <intent-filter> 
  11. <action android:name="android.intent.action.MAIN" /> 
  12. <category android:name="android.intent.category.LAUNCHER" /> 
  13. </intent-filter> 
  14. </activity> 
  15. <activity android:name=".OtherActivity"
  16. android:configChanges="orientation|keyboardHidden|navigation" /> 
  17. <activity android:name=".AssociatedActivity"
  18. android:configChanges="orientation|keyboardHidden|navigation"> 
  19. <intent-filter> 
  20. <action android:name="android.intent.action.VIEW" /> 
  21. <category android:name="android.intent.category.DEFAULT" /> 
  22. <data android:mimeType="text/plain"></data> 
  23. <data android:mimeType="application/epub+zip"></data> 
  24. </intent-filter> 
  25. </activity> 
  26. </application> 
  27. <uses-sdk android:minSdkVersion="8" /> 
  28. <uses-permission android:name="android.permission.WRITE_EXTERNAL_STORAGE" /> 
  29. <uses-permission android:name="android.permission.INTERNET" /> 
  30. </manifest>
复制代码
这个例子里面有两个“intent-filter”,第一个是应用启动起来的第一个activity,第二intent-filter才是实现文件关联的。
  1. <intent-filter> 
  2. <action android:name="android.intent.action.VIEW" /> 
  3. <category android:name="android.intent.category.DEFAULT" /> 
  4. <data android:mimeType="text/plain"></data> 
  5. <data android:mimeType="application/epub+zip"></data> 
  6. </intent-filter>
复制代码

这段xml就把程序注册为同txt和epub文件格式关联,如果要关联jpeg,mimeType改为: "image/jpeg",与所有文件关联改为:"*/*"。这样当你在文件管理器里点击相关文件,系统都会试图去执行你的程序。
  1. public class AssociatedActivity extends Activity { 

  2. /** Called when the activity is first created. */
  3. @Override
  4. public void onCreate(Bundle savedInstanceState) { 
  5. super.onCreate(savedInstanceState); 
  6. setContentView(R.layout.main); 

  7. Intent intent = getIntent(); 
  8. String action = intent.getAction(); 
  9. if (intent.ACTION_VIEW.equals(action)) { 
  10. Uri uri = (Uri) intent.getData(); 
  11. String filename = uri.getPath(); 
  12. Log.e("info", filename); 


  13. }
复制代码

这里的action主要判断是否来自VIEW action和xml里的android.intent.action.VIEW对应,通过intent.getData可以获取传进来的参数,也就是点击的文件。
  • 0
    点赞
  • 1
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值