- 一个项目里多个provider冲突,导致运行报错。
首先自定义provider
class JsFileProvider : FileProvider() {
}
然后在清单文件中声明
<provider
android:name=".JsFileProvider"
android:authorities="${applicationId}.bridge.fileprovider"
android:exported="false"
android:grantUriPermissions="true">
<meta-data
android:name="android.support.FILE_PROVIDER_PATHS"
android:resource="@xml/filepaths"
tools:replace="android:resource"/>
</provider>
- fragment里监听不到onActivityResult的回调
启动的时候使用mFragment.startActivityForResult启动就能接收到到回调。
Intent intent = new Intent();
intent.setType("image/*");
intent.setAction(Intent.ACTION_GET_CONTENT);
try {
mFragment.startActivityForResult(intent, REQUEST_CODE_SELECT_PIC);
} catch (Exception e) {
}
- 应用间通过uri跳转问题
跳转的应用,在清单文件中定义好uri
<activity
android:name=".MainActivity"
android:exported="true">
<!--URL启动启动配置-->
<intent-filter>
<data
android:host="router"
android:path="/demo/user"
android:scheme="csdn" />
<action android:name="android.intent.action.VIEW" />
<category android:name="android.intent.category.DEFAULT" />
<category android:name="android.intent.category.BROWSABLE" />
</intent-filter>
</activity>
其他应用可跳转
val intent = Intent()
intent.data = Uri.parse("csdn://router/demo/user?from=1")
intent.flags = Intent.FLAG_ACTIVITY_NEW_TASK
startActivity(intent)