我有一个应用程序用图片做什么。
它可以制作图片并将其写入sdcard
或从图库中拍摄图片。
在AndroidManifest.xml
我有这个:
<intent-filter>
<action android:name="android.intent.action.VIEW" />
<action android:name="android.intent.action.SEND" />
<category android:name="android.intent.category.DEFAULT" />
<data android:mimeType="image/*" />
</intent-filter>
因此,我的应用程序将被找到作为图片的目的地。到现在为止还挺好。 但接下来呢? 图片在哪里,其他应用与我的应用分享了什么?
感谢您的帮助。这可能是问题(AndroidManifest.xml)。我必须把意图放在哪里?我有2个活动。第一个是登录whitout图像处理,第二个是想要查看图像的人(仪表板)。 但我必须首先登录,然后才能使用我的仪表板活动,因此我无法直接调用仪表板。 此外,我已将此代码放入登录onCreate Methode,但它总是返回null - 如果我通过gllery“共享”图像到我的应用程序或其他东西(在正常启动时很明显,它将为null)。
LoginActivity.java
public void onCreate(Bundle savedInstanceState) {
super.onCreate(savedInstanceState);
setContentView(R.layout.login);
db = new DatabaseHandler(getApplicationContext());
if(getIntent().getData() != null){
Uri uri = getIntent().getData();
File image = new File(uri.toString());
Log.d("jnLoginURI",image.getAbsolutePath());
} else {
Log.d("jnLoginURI","uri=null");
}
// ...............
的AndroidManifest.xml
<?xml version="1.0" encoding="utf-8"?>
<manifest xmlns:android="http://schemas.android.com/apk/res/android"
package="com.owndms.owndmsandroid2"
android:versionCode="1"
android:versionName="1.0" >
<uses-sdk android:minSdkVersion="8" />
<uses-permission android:name="android.permission.INTERNET" />
<uses-permission android:name="android.permission.CAMERA" />
<uses-permission android:name="android.permission.WRITE_EXTERNAL_STORAGE" />
<uses-feature android:name="android.hardware.camera" />
<application
android:icon="@drawable/owndms"
android:label="@string/app_name" >
<activity
android:label="@string/app_name"
android:name=".DashboardActivity" >
</activity>
<activity
android:label="ownDMS"
android:name=".LoginActivity">
<intent-filter >
<action android:name="android.intent.action.MAIN" />
<category android:name="android.intent.category.LAUNCHER" />
</intent-filter>
<intent-filter>
<action android:name="android.intent.action.VIEW" />
<action android:name="android.intent.action.SEND" />
<category android:name="android.intent.category.DEFAULT" />
<data android:mimeType="image/*" />
</intent-filter>
</activity>
</application>
</manifest>
btw:在我的信息中心活动中从图库中选择图片或从相机中制作图像。
答案 0 :(得分:2)
在您Activity
上添加Intent-Filter
的{{1}}中,您应该从AndroidManifest.xml
获取共享的数据(图片)。
<强>的AndroidManifest.xml 强>
Intent
<强> MyActivity:强>
<application
android:label="@string/app_name"
android:icon="@drawable/ic_launcher">
<activity
android:name="MyActivity"
android:label="@string/app_name">
<intent-filter>
<action android:name="android.intent.action.VIEW" />
<action android:name="android.intent.action.SEND" />
<category android:name="android.intent.category.DEFAULT" />
<data android:mimeType="image/*" />
</intent-filter>
</activity>
</application>
<强> RES /布局/ main.xml中强>
public class MyActivity extends Activity {
@Override
public void onCreate(Bundle savedInstanceState) {
super.onCreate(savedInstanceState);
setContentView(R.layout.main);
ImageView imageView = (ImageView) findViewById(R.id.imageView);
if(getIntent().getData() != null){
try {
Uri uri = getIntent().getData();
InputStream is = getContentResolver().openInputStream(uri);
imageView.setImageBitmap(BitmapFactory.decodeStream(is));
} catch (FileNotFoundException e) {
e.printStackTrace();
}
}
}
}
希望它有所帮助。