pdf 뷰어 앱을 만들고 있는데요.
임의의 pdf 파일을 실행했을 시 나오는 "사용할 애플리케이션" 목록에서 제가 만든 앱을 터치하면
해당 pdf 파일의 내용을 보여주는 .xml 페이지(activity_pdf.xml이라고 이름 지었습니다)로 넘어가게 만들고 싶습니다.
"사용할 애플리케이션" 목록에 앱을 띄우는 건 intent 필터를 사용해서 성공을 했는데
xml 파일과 intent를 연결시키는 방법을 잘 모르겠네요.
(.java 파일)
protected void onCreate(@Nullable Bundle savedInstanceState) {
super.onCreate(savedInstanceState);
setContentView(R.layout.activity_pdf);
File file = new File(Environment.getExternalStorageDirectory().getAbsolutePath());
Intent intent = getIntent();
if(Intent.ACTION_VIEW.equals(intent.getAction())) {
intent.setDataAndType(Uri.fromFile(file), "application/pdf");
try {
startActivity(intent);
}
catch(ActivityNotFoundException e) {
Toast.makeText(getApplicationContext(), "애플리케이션을 실행할 수 없습니다", Toast.LENGTH_LONG).show();
}
}
init();
}
(manifest 파일)
<application
android:allowBackup="true"
android:icon="@mipmap/ic_launcher"
android:label="@string/app_name"
android:supportsRtl="true"
android:theme="@style/AppTheme">
<activity
android:name=".MainActivity"
android:screenOrientation="portrait">
<intent-filter>
<action android:name="android.intent.action.MAIN" />
<category android:name="android.intent.category.LAUNCHER" />
</intent-filter>
</activity>
<activity
android:name=".PdfActivity"
android:screenOrientation="portrait">
<intent-filter>
<action android:name="android.intent.action.VIEW" />
<category android:name="android.intent.category.BROWSABLE" />
<category android:name="android.intent.category.DEFAULT" />
<data android:scheme="file" />
<data android:scheme="content" />
<data android:mimeType="application/pdf" />
</intent-filter>
<intent-filter>
<action android:name="android.intent.action.VIEW" />
<category android:name="android.intent.category.BROWSABLE" />
<category android:name="android.intent.category.DEFAULT" />
<data android:scheme="file" />
<data android:scheme="content" />
<data android:mimeType="application/pdf" />
</intent-filter>
</activity>
</application>