Tôi có ứng dụng đọc văn bản được thiết kế để nhận ý định từ hệ thống Android khi tôi nhấp vào tệp văn bản để mở tệp. Nhưng ứng dụng của tôi không có trong danh sách được hệ thống hiển thị. Dưới đây là mã của tôi:Tại sao ứng dụng của tôi không nằm trong danh sách ứng dụng để mở tệp txt?
Manifest
<?xml version="1.0" encoding="utf-8"?>
<manifest xmlns:android="http://schemas.android.com/apk/res/android"
package="com.broadcastreceivertest1"
android:versionCode="1"
android:versionName="1.0" >
<uses-sdk android:minSdkVersion="8" />
<application
android:icon="@drawable/ic_launcher"
android:label="@string/app_name" >
<activity
android:label="@string/app_name"
android:name=".BroadcastReceiverTest1Activity" >
<intent-filter >
<action android:name="android.intent.action.MAIN" />
<category android:name="android.intent.category.LAUNCHER" />
</intent-filter>
</activity>
<receiver android:name="MyBroadcastReceiver">
<intent-filter>
<action android:name="android.intent.action.ACTION_VIEW" />
<action android:name="android.intent.action.ACTION_EDIT" />
<action android:name="android.intent.action.ACTION_PICK" />
<data android:scheme="file" />
<data android:mimeType="*/*" />
<data android:pathPattern=".*\\.txt" />
<data android:host="*" />
</intent-filter>
</receiver>
</application>
</manifest>
BroadcastReceiver mở rộng My
public final class MyBroadcastReceiver extends BroadcastReceiver {
private String TAG = "MyBroadcastReceiver";
@Override
public void onReceive(Context context, Intent intent) {
// TODO Auto-generated method stub
Intent i = new Intent(context, BroadcastReceiverTest1Activity.class);
i.putExtra("URI", intent.getData());
context.startActivity(i);
Log.d(TAG, "Leaving onReceived...");
}
}
hoạt động của tôi sẽ được mở bằng cách thu phát sóng
public class BroadcastReceiverTest1Activity extends Activity {
private String uri ="";
/** Called when the activity is first created. */
@Override
public void onCreate(Bundle savedInstanceState) {
super.onCreate(savedInstanceState);
setContentView(R.layout.main);
final Intent intent = getIntent();
final String action = intent.getAction();
if(Intent.ACTION_VIEW.equals(action)){
uri = intent.getStringExtra("URI");
TextView textView = (TextView)findViewById(R.id.textView);
textView.setText(uri);
}
}
}
Cảm ơn!
Tôi chỉ muốn ứng dụng của mình nằm trong danh sách mở tệp văn bản, nhưng hiện tại ứng dụng của tôi nằm trong danh sách cho mọi loại tệp. Tôi đã có , nhưng tôi tự hỏi nếu tôi nên chỉ định mimeType. Tôi nên làm gì để hạn chế ứng dụng của mình chỉ xuất hiện trong danh sách mở tệp văn bản? –
thay đổi loại mime thành ' ' –
Hein
Cảm ơn bạn! Nó hoạt động rất tốt! –