如何将我的应用设为默认值。就像我已经制作了一个包含QR码扫描仪功能的应用程序,我已经使用ZXing库项目进行QR码扫描。 它是工作文件,但是当我运行项目时,我会使用"" 完成操作。选项。当我点击我的应用程序扫描仪按钮时,它会打开设备摄像头,但在此之前它会询问选项。我希望我的应用程序是QR扫描程序的默认设置。意味着它不会使用选项显示完成操作。
那我该怎么做呢?
答案 0 :(得分:0)
在Manifest中使用Intent过滤器来指定您的活动处理的操作,如下所示:
<activity class=".NoteEditor" android:label="@string/title_note">
<intent-filter android:label="@string/resolve_edit">
<action android:name="android.intent.action.VIEW" />
<action android:name="android.intent.action.EDIT" />
<category android:name="android.intent.category.DEFAULT" />
<data android:mimeType="vnd.android.cursor.item/vnd.google.note" />
</intent-filter>
<intent-filter>
<action android:name="android.intent.action.INSERT" />
<category android:name="android.intent.category.DEFAULT" />
<data android:mimeType="vnd.android.cursor.dir/vnd.google.note" />
</intent-filter>
</activity>
例如,用于阅读QR码的动作名称可能是android.intent.readQR
您在意图过滤器中指定此操作,告诉Android您的应用处理此操作。当你做得对,你的应用程序应该出现在该列表中。
看一下这个链接:
http://developer.android.com/reference/android/content/Intent.html
修改:选中此链接可将您的应用设置为默认值:
http://droidyue.com/blog/2014/01/12/set-the-preferred-application-in-android/
答案 1 :(得分:0)
如果您已经包含了ZXing应用项目(https://github.com/zxing/zxing/tree/master/android),而不仅仅是核心,您可以直接打开负责扫描的活动,如下所示:
Intent intent = new Intent(this,CaptureActivity.class);
intent.setAction(Intents.Scan.ACTION);
//or intent.setAction("com.google.zxing.client.android.SCAN");
intent.putExtra("SCAN_MODE","QR_CODE_MODE"): // for only scanning qr codes
startActivityForResult(intent, 9000); // replace 9000 with some request code you defined
并在您的活动的onActivityResult
中获得结果:
@Override
protected void onActivityResult(int requestCode, int resultCode, Intent data) {
super.onActivityResult(requestCode, resultCode, data);
if (resultCode == RESULT_OK) {
if(resultCode=9000){ // again, replace
String result = data.getStringExtra("SCAN_RESULT");
...
}
}