我试图让MediaScanner只扫描一个目录时遇到问题.
我的应用程序拍照,并将它们保存到SD卡/ DCIM/AppPictures /,显然我需要调用MediaScanner才能显示在图库应用程序中.以下代码适用于我的目的:
sendBroadcast(new Intent(Intent.ACTION_MEDIA_MOUNTED, Uri.parse("file://" + Environment.getExternalStorageDirectory())));
Run Code Online (Sandbox Code Playgroud)
但它似乎太浪费了!当我确切知道文件的位置时,我不想使用资源尝试扫描整个SD卡.我也尝试了以下内容:
sendBroadcast(new Intent(Intent.ACTION_MEDIA_MOUNTED, Uri.parse("file://" + Environment.getExternalStorageDirectory+"/DCIM/AppPictures/")));
Run Code Online (Sandbox Code Playgroud)
但这没有产生任何结果.有人可以让我知道完成这项工作的正确方法吗?
我一直在寻找无所作为.我知道有几个问题,但我找不到一个适合我的问题.
基本上,我有一个活动(MainActivity),具有向主屏幕添加快捷方式的功能.当我单击快捷方式时,我希望它打开另一个活动(NewActivity).这里的搁置似乎是当我尝试启动与创建快捷方式的活动不同的活动时,它无法正常工作.
快捷方式成功完成,但是当我点击它时,我从Android系统得到一个"App not not installed"toast消息.
这是添加快捷方式的代码:
Intent shortcutIntent = new Intent();
shortcutIntent.setClassName("com.enceladus.myApp", "com.enceladus.myApp.NewActivity");
shortcutIntent.addFlags(Intent.FLAG_ACTIVITY_NEW_TASK);
shortcutIntent.addFlags(Intent.FLAG_ACTIVITY_CLEAR_TOP);
Intent addIntent = new Intent();
addIntent.putExtra(Intent.EXTRA_SHORTCUT_INTENT, shortcutIntent);
addIntent.putExtra(Intent.EXTRA_SHORTCUT_NAME, "Calculator");
addIntent.putExtra(Intent.EXTRA_SHORTCUT_ICON_RESOURCE, Intent.ShortcutIconResource.fromContext(MainActivity.this, R.drawable.calc));
addIntent.setAction("com.android.launcher.action.INSTALL_SHORTCUT");
MainActivity.this.sendBroadcast(addIntent);
Run Code Online (Sandbox Code Playgroud)
编辑:这是我的清单:
<manifest xmlns:android="http://schemas.android.com/apk/res/android"
package="com.enceladus.myApp"
android:versionCode="1"
android:versionName="1.0" >
<uses-sdk
android:minSdkVersion="9"
android:targetSdkVersion="15" />
<uses-permission android:name="android.permission.CAMERA"/>
<uses-permission android:name="android.permission.WRITE_EXTERNAL_STORAGE"/>
<uses-permission android:name="com.android.launcher.permission.INSTALL_SHORTCUT" />
<uses-feature android:name="android.hardware.camera" />
<uses-feature android:name="android.hardware.camera.autofocus" />
<application
android:icon="@drawable/ic_launcher"
android:label="@string/app_name"
android:theme="@style/AppTheme" >
<activity
android:name=".MainActivity"
android:label="@string/title_activity_main" >
<intent-filter>
<action android:name="android.intent.action.MAIN" />
<category android:name="android.intent.category.LAUNCHER" />
</intent-filter>
</activity>
<activity android:name="com.enceladus.myApp.NewActivity"
android:label=""
android:screenOrientation="portrait"
android:theme="@android:style/Theme.Translucent.NoTitleBar"
android:launchMode="singleInstance"
/>
</application> …Run Code Online (Sandbox Code Playgroud)