Articles of 播放

播放SD卡上的MP3声音

我的平板电脑的SD卡上有一个名为“/Android/data/com.example.android.app/files”的目录。 我只是手动创build它,因为我不知道如何testing我的应用程序的这一方面。 我有文件名存储在像“/folder1/audio1.mp3”,“/folder2/audio1.mp3”等sqlite数据库…文件具有相同的名称,但在不同的文件夹,因为它们是相同的东西是不同的语言。 我在SD卡的“/Android/data/com.example.android.app/files”目录中有这些文件夹(folder1和folder2)和所有mp3文件。 所以,我从数据库中获取文件名,并尝试使用以下命令到达SD卡上的文件夹: String baseDir = Environment.getExternalStorageDirectory().getAbsolutePath() + "/Android/data/com.example.android.app/files"; 这只是基本上结束了path“存储/ Android /数据/ com.example.android.app /文件”。 现在,在开发早期,我的原始文件夹里有几个mp3文件,但是最后会有太多的文件保存在那个文件夹中,所以我开始调查从SD卡中获取它们。 当我生他们的时候,我是这样得到的: rid = getResources().getIdentifier(filname, "raw", "com.example.android.app"); 现在,SD卡上的文件变成: filename = "/folder1/audio.mp3" 而不是“生”,我有: "storage/Android/data/com.example.android.app/files" 基本上是这样玩的 AssetFileDescriptor afd = mContext.getResources().openRawResourceFd(rid); mMP.reset(); mMP.setDataSource(afd.getFileDescriptor(), afd.getStartOffset(), afd.getDeclaredLength()); mMP.prepare(); mMP.start(); afd.close(); 然而,这种方法现在似乎没有一样的工作方式。 你可以从SD卡上的MP3文件获取资源ID? 那现在是我的合适的方式吗? 有没有另外一种方式让我玩,无论来源是内部还是外部记忆,都可以起作用。 彻底困惑。 编辑:我确实发现这可能会有所帮助…但也许只有等式。 编辑2:我在这里看。 它使用我不认为是我想要的媒体存储。

如何模拟Android模拟器上的硬件媒体控制button

Android支持耳机和连接设备上的硬件播放/暂停button。 我正试图find一种方法来testing模拟器上的这些设备的支持。 Android文档讨论了如何添加对硬件播放控件的支持,但不幸的是,我找不到如何模拟它们的文档。 谢谢!

Android 2.1检测蓝牙audio连接/断开

我抓我的头试图find一种方法来检测蓝牙耳机连接和断开Android 2.1的事件。 我在API级别11中看到有一些明确的API,但是如何在API级别7中执行此操作? 我只是想知道用户何时连接或断开能够播放audio的耳机或汽车音响,以便我可以暂停我正在播放的声音。

在Android wifi热点获取wifi广播地址

我正在开发一个应用程序,使用WiFi来广播在同一个networking中有我的应用程序的所有手机之间的UDP消息。 我设法发送/接收来自许多具有外部AP的手机的数据包,这是我的路由器。 但考虑到没有AP的情况,我希望用户能够使用他们的手机的Wifi热点function,以便他们仍然可以使用我的应用程序。 所以其中一个手机将成为wifi热点,其他所有的手机都将连接到这个热点。 我要求用户连接到他们自己的WiFi。 无论是外部接入点还是上述热点。 然后,当我的应用程序启动时,它会检查手机是否连接到一个WiFinetworking,调用WifiManager.isWifiEnabled()和NetworkInfo.isConnected()。 问题是,如果我在使用热点的手机中调用这些函数,函数isConnected()将返回false。 我无法使用WifiManager.getDhcpInfo()获取广播地址。 其他手机连接到热点,他们的工作完美。 但由于WifiManager被禁用,热点手机无法发送任何广播。 所以,我的问题是:“有没有办法检查手机是否是一个wifi热点?如果是的话,有什么办法可以得到它的广播地址?

如何在BroadcastReceiver类中使用getApplicationContext?

我正在使用广播公司类使用此代码来收听短信 package com.escortme.basic; import android.content.BroadcastReceiver; import android.content.Context; import android.content.Intent; import android.os.Bundle; import android.telephony.SmsMessage; import android.widget.Toast; public class SMSReceiverActivity extends BroadcastReceiver { @Override public void onReceive(Context context, Intent intent) { // Parse the SMS. Bundle bundle = intent.getExtras(); SmsMessage[] msgs = null; String str = ""; if (bundle != null) { // Retrieve the SMS. Object[] […]

Android广播地址

我为我的Android手机制作了一个Client Server应用程序。 我已经创build了一个Python的UDP服务器,它坐在和监听连接。 我可以把服务器的IP地址直接192.169.0.100 ,并且发送数据正常。 我也可以把192.168.0.255 ,并find192.169.0.100上的服务器。 是否有可能获得我的Android手机连接到networking的广播地址? 我只会在我的Wifinetworking或其他Wifinetworking上使用此应用程序。 干杯

监听传入数据的特定端口

为了扫描其他设备的WiFinetworking,我发送广播与我的应用程序一个特定的端口到WiFinetworking中的所有IP。 因此,如果应用程序在WiFinetworking中的设备上运行,则必须响应该广播。 首先,我发送一个DatagramPacket,其中包含一些数据。 然后,监听设备必须侦听此DatagramPacket的端口,然后使用自己的设备IP发回。 我如何pipe理这个?

发送广播UDP,但不能在其他Android设备上收到它

我试图开发一个应用程序,发送一些广播消息,并从其他Android设备接收一些答案。 我从其他设备接收UDP消息时遇到了一些麻烦。 我应该提到,这个代码工作在姜饼,但在果冻豆不再工作,我不知道可能是什么问题。 这里是我发送广播消息的地方(我知道其他设备在端口5000上侦听): private void sendUDPMessage(String msg) { try { DatagramSocket clientSocket = new DatagramSocket(); clientSocket.setBroadcast(true); InetAddress address = InetAddress.getByName(Utils.getBroadcastAddress()); byte[] sendData; sendData = msg.getBytes(); DatagramPacket sendPacket = new DatagramPacket(sendData, sendData.length, address, 5000); clientSocket.send(sendPacket); clientSocket.close(); } catch (Exception e) { e.printStackTrace(); } } 这里是我收到的地方: private void start_UDP() { try { serverSocketUDP = new DatagramSocket(5000); […]

Android:更新后重新启动应用程序 – ACTION_PACKAGE_REPLACED

我的应用程序不在Play商店上在网上validation如果有新版本并下载并启动它。 安装后,我想重新启动应用程序,我会用ACTION_PACKAGE_REPLACED一个BroadcastRecevier 。 这是代码: 广播: public void onReceive(Context context, Intent intent) { if(intent.getAction().equals(Intent.ACTION_PACKAGE_REPLACED)){ ApplicationInfo app = new ApplicationInfo(); if(app.packageName.equals("it.android.downloadapk")){ Intent LaunchIntent = context.getPackageManager().getLaunchIntentForPackage(app.packageName); context.startActivity(LaunchIntent); } } } performance: <receiver android:name="it.android.downloadapk.Broadcast"> <intent-filter> <action android:name="android.intent.action.ACTION_PACKAGE_REPLACED"></action> <data android:scheme="package" android:path="it.android.downloadapk" /> </intent-filter> </receiver> 问题是,当我安装新的apk,广播似乎没有启动,为什么?

如何将BroadCast从一个应用程序发送到另一个应用程序

我有应用程序A和应用程序B.在应用程序A我想发送广播到应用程序B.这是App1的代码: final Intent intent=new Intent(); intent.setAction("com.pkg.perform.Ruby"); intent.putExtra("KeyName","code1id"); intent.setComponent(new ComponentName("com.pkg.AppB","com.pkg.AppB.MainActivity")); sendBroadcast(intent); 在App B中 – 在MainActivity中,我有我的BroadCastReceiverClass public class MainActivity extends Activity { private MyBroadcastReceiver MyReceiver; @Override protected void onCreate(Bundle savedInstanceState) { super.onCreate(savedInstanceState); setContentView(R.layout.activity_main); // Receive broad Cast fromn External App IntentFilter intentFilter=new MyReceiver =new MyBroadcastReceiver(); IntentFilter("com.pkg.perform.Ruby"); if(intentFilter!=null) { registerReceiver(MyReceiver,intentFilter); } } public class MyBroadcastReceiver extends BroadcastReceiver { […]